PHP 5 允行开发者在一个类中定义一个方法作为构造函数。
具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使
用对象之前做一些初始化工作。
如下例1:
class fun1{
function __construct(){
print "开头就调用构造函数\n";
}
}
$Tom=new fun1();//结果为"开头就调用构造函数"
注意:
如果子类中定义了构造函数则不会调用其父类的构造函数。
要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct( )。
如例2所示:
例2:使用新标准的构造函数
class fun1{
function __construct(){
print "开头就调用构造函数fun1"."<br />";
}
}
class fun2 extends fun1{
function __construct(){
print "开头就调用构造函数fun2\n"."<br />";
parent::__construct();
}
}
$aaa=new fun1(); //"开头就调用构造函数fun1"
$bbb=new fun2(); //"开头就调用构造函数fun2 开头就调用构造函数fun1"
2.析构函数
PHP 5 引入了析构函数的概念。
析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
例3.析构函数示例
function __construct(){
print "开头就调用构造函数fun1"."<br />";
}
function __destruct(){
print "当对象被销毁时调用析构函数"."<br />";
}
}
$Tom=new fun1(); //"开头就调用构造函数fun1"
echo "当Tom对象被销毁时调用析构函数"."<br />";
unset($Tom); //"当对象被销毁时调用析构函数"
和构造函数一样,父类的析构函数不会被引擎暗中调用。
要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。
注意:
析构函数在脚本关闭时调用,此时所有的头信息已经发出。
本文介绍了PHP 5中构造函数和析构函数的基本概念及使用方法。构造函数__construct()用于对象创建时的初始化工作,而析构函数__destruct()则在对象销毁时执行清理操作。
145

被折叠的 条评论
为什么被折叠?



