PHP 构造函数和析构函数
构造函数
__construct 开发者在一个类中定义一个方法作为构造函数,具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。
注意:如果子类中定义了构造函数则不会隐式调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。
例如:
<?php class BaseClass{ function __construct(){ echo '创建baseclass构造函数'; } } class SubClass extends BaseClass{ function __construct(){ parent:: __construct(); echo '创建sublcass 构造函数'; } } $obj=new BaseClass(); //在subclass子类的构造函数 $obj=new SubClass(); ?>
析构函数
__destruct
析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
<?php class MyDestructableClass { function __construct() { print "In constructor\n"; $this->name = "MyDestructableClass"; } function __destruct() { print "Destroying " . $this->name . "\n"; } } $obj = new MyDestructableClass(); ?>
和构造函数一样,父类的析构函数不会被引擎暗中调用。要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。此外也和构造函数一样,子类如果自己没有定义析构函数则会继承父类的。
析构函数即使在使用 exit() 终止脚本运行时也会被调用。在析构函数中调用 exit() 将会中止其余关闭操作的运行。

浙公网安备 33010602011771号