🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
##构造函数和构造函数 ### 构造函数 构造函数 `__construct()` 在每次创建新对象时先调用,所以非常适合在使用对象之前做一些初始化工作。 ``` <?php class MyClass { public function __construct() { echo "In constructor.". PHP_EOL; } } $obj = new MyClass(); ?> ``` > **Note:** 在子类中如果定义了 `__construct()` 则不会调用父类的 `__construct()`, 如果需要同时调用父类的构造函数,需要使用 `parent::__construct()` 显式的调用。 ``` <?php class BaseClass { function __construct() { echo "In BaseClass constructor." . PHP_EOL; } } class SubClass extends BaseClass { function __construct() { parent::__construct(); echo "In SubClass constructor." . PHP_EOL; } } class OtherSubClass extends BaseClass { // inherits BaseClass's constructor } $obj = new BaseClass(); $obj = new SubClass(); $obj = new OtherSubClass(); ?> ``` ### 析构函数 析构函数 `__destruct()` 会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。 ``` <?php class MyClass { function __construct() { echo "In constructor." . PHP_EOL; } function __destruct() { echo "In destructor." . PHP_EOL; } } $obj = new MyClass(); ?> ``` > **Note:** 和构造函数一样,在子类中如果定义了 `__destruct()` 则不会调用父类的 `__destruct()`, 如果需要同时调用父类的析构函数,需要使用 `parent::__destruct()` 显式的调用。