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() 函數銷毀對象,此時析構函數會被調用
注意:析構函數在對象的引用計數為零時才會被調用。如果一個對象被多個變量引用,那么只有在這些引用都被銷毀或超出作用域時,析構函數才會被調用。