PHP 中的析构函数(destructor)会在以下情况下被调用:
class MyClass {
public function __destruct() {
echo "The object is being destroyed.";
}
}
$obj = new MyClass(); // 创建一个新对象
$obj = null; // 将对象设置为 null,此时析构函数会被调用
当页面执行完毕,所有对象都将被销毁时,此时析构函数也会被调用。
当手动调用 unset()
函数销毁一个对象时,析构函数将立即被调用。
class MyClass {
public function __destruct() {
echo "The object is being destroyed.";
}
}
$obj = new MyClass(); // 创建一个新对象
unset($obj); // 使用 unset() 函数销毁对象,此时析构函数会被调用
注意:析构函数在对象的引用计数为零时才会被调用。如果一个对象被多个变量引用,那么只有在这些引用都被销毁或超出作用域时,析构函数才会被调用。