PHP面向对象程序设计之构造方法和析构方法详解面向对象程序设计之构造方法和析构方法详解
主要介绍了PHP面向对象程序设计之构造方法和析构方法,结合具体实例形式详细分析了php面向对象程序设计
中构造方法和析构方法的相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
本文实例讲述了PHP面向对象程序设计之构造方法和析构方法。分享给大家供大家参考,具体如下:
构造方法和析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关。构造方法是对象创建完成后第一个被对象自动对象创建完成后第一个被对象自动
调用调用的方法,这是我们在对象中使用构造方法的原因。而析构方法是对象在销毁之前最后一个被对象自动调用对象在销毁之前最后一个被对象自动调用的方法,这也是
我们在对象中使用析构方法的原因。所以通常使用构造方法完成一些对象的初始化工作初始化工作,使用析构方法完成一些对象在销毁之
前的清理工作清理工作。
1.构造方法构造方法
在每个声明的类中都有一个呗称为构造方法的特殊成员方法,如果没有显式的声明它,类中都会默认存在一个没有参数列表并
且内容为空的构造方法。如果显式的声明它,则类中的默认构造方法将不会存在。当创建一个对象时,构造方法就会被自动调
用一次,即每次使用关键词new来实例化对象时都会自动调用构造方法,不能主动通过对象的引用调用构造方法。所以通常使
用构造方法来执行一些有用的初始化任务,比如对成员属性在创建对象时赋初值等。
在PHP5以前的版本中,构造方法的方法名称必须与类名相同,这种方式在PHP 5中任然可以使用。但在PHP中很少声明和类
名同名的构造方法了,这样做的好处是可以使构造函数独立于类名,当类名发生变化时不需要更改相应的构造函数名称。为了
向下兼容,在创建对象时,如果一个类中没有名为__construct()的构造方法,PHP将搜索与类名相同名的构造方法执行。在类中
声明构造方法的格式如下:
function __construct( [参数列表] ){ //构造方法名称是以两个下划线开始的
//方法体,通常用来对成员属性进行初始化赋值
}
在PHP中,同一个类中只能声明一个构造方法。原因是构造方法名称是固定的,在PHP中不能声明同名的两个函数,所以也
就没有构造方法重载。但可以在声明构造方法时使用默认参数,实现其他面向对象的编程语言中构造方法重载的功能。这样在
创建对象时,如果在构造方法中没有传入参数,则使用默认参数为成员属性进行初始化。
构造函数可以接受参数,能够在创建对象时赋值给对象属性
构造函数可以调用类方法或其他函数
构造函数可以调用其他类的构造函数
构造函数使用例子:
<?php
class Person{
private $name;
private $age;
private $gender;
public function __construct($name,$age,$gender){
$this->setName($name); //调用类方法
$this->age = $age;
$this->setGender($gender);
}
public function setName($name){
$this->name = $name;
}
// ... setter 方法
}
$person = new Person("yeoman",23,'男');
?>
调用父类构造函数、调用无关类的构造函数:
function __construct(){
parent::__construct(); // 调用父类的构造函数必须显示的使用parent调用父类构造函数
classname::__construct(); // 调用其他类的构造函数,classname是类名
//其他操作
}
继承和构造函数继承和构造函数
PHP中的子类的构造函数不会主动调用父类的构造函数,要显示的使用parent::__construct()调用:
<?php
class Animal{
private $name;
评论0
最新资源