php 析構方法 destruct 什麼情況下執行 求所有的情況,是不是遇到?>php結束符號也執行
##析構函數會在到某個物件的所有引用都被刪除或當物件被明確銷毀時執行
在物件銷毀前執行吧? 依照官方手冊的描述,析構函數會在到某個物件的所有參考都被刪除或當物件被明確銷毀時執行。程式碼示範如下class sf{ public function destruct() { echo METHOD . PHP_EOL; } } $c1 = new sf; $c2 = $c1;echo 'unset $c2' . PHP_EOL;unset($c2);echo 'unset $c1' . PHP_EOL;unset($c1);// ----$c1 = new sf; $c2 = $c1;echo 'null $c2' . PHP_EOL; $c2 = null;echo 'null $c1' . PHP_EOL; $c1 = null;// ----$c1 = new sf; $c2 = $c1;echo '123 $c2' . PHP_EOL; $c2 = 123;echo '456 $c1' . PHP_EOL; $c1 = 456;echo 'the end' . PHP_EOL;運行結果如下
unset $c2unset $c1 sf::destructnull $c2null $c1 sf::destruct123 $c2456 $c1 sf::destruct the end析構函數會在到某個物件的所有參考都被刪除或是當物件被明確銷毀時執行。 通常來說在腳本結束時(非unset)php才會銷毀引用 在腳本結束運行之前執行。
以上是php:析構方法 __destruct在什麼情況下執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!