1 构造方法
构造方法:
- 构造方法存在于每个声明的类中,它执行一些初始化的任务。
- 如果类中没有直接声明构造方法,那么类会默认生成一个没有参数且内存为空的构造方法。
声明构造方法,名称必须以两个下划线开头,即"__construct"
注意,构造方法是不能返回(return)值的。
构造方法特性:当通过关键字new生成实例的时候,它就会被调用执行。
作用:对一些属性进行初始化,即给一些属性进行初始化的赋值。
一个类只能声明一个构造方法。
构造方法中的参数是可选的,如果没有传入参数,就将使用默认参数为成员变量进行初始化。
解说:
-
在上例中,对实例 x i a o m i n g 的属性 xiaoming的属性 xiaoming的属性name进行赋值,还需要通过使用接口setname( m i n g z i ) 进行操作,如 mingzi)进行操作,如 mingzi)进行操作,如xiaoming->setname(“王小明”);
-
如果想在生成实例 x i a o m i n g 的同时,就对此实例的属性 xiaoming的同时,就对此实例的属性 xiaoming的同时,就对此实例的属性name进行赋值,就需要用到构造方法"__construct()"。
例子:
//实例:介绍构造方法的使用和技巧
class guests{ //定义类guests
private $name;
private $gender;
function __construct($mingxi,$xingbie){ //定义构造方法__construct()
$this->name = $mingxi; //注意,构造方法是不能返回(return)值的。
$this->gender = $xingbie;
}
function getname(){ //定义函数getname()
return $this->name;
}
function getgender(){ //定义函数getgender()
return $this->gender;
}
};
$xiaoming = new guests("赵大勇","男");
$lili = new guests("方芳芳","女");
echo $xiaoming->getname()."\t".$xiaoming->getgender()."<br />"; //赵大勇 男
echo $lili->getname()."\t".$lili->getgender(); //方芳芳 女
2 析构方法
构造方法的反面–析构方法(destructor):
在对象被销毁的时候被调用执行。
但是因为PHP在每个请求的最终都会把所有的资源释放,所以析构方法的意义是有限的。
语法格式如下:
function __destruct(){
//方法的内容,通常完成一些在对象销毁前的清理任务
}
以下两种情况下,析构方法可能被调用执行:
- 代码运行时,当所有对于某个对象的reference(引用)被毁掉的情况下。
- 当代码执行到最后并且PHP停止请求的时候调用destructor函数。