首頁  >  文章  >  後端開發  >  php:析構方法 __destruct在什麼情況下執行?

php:析構方法 __destruct在什麼情況下執行?

黄舟
黄舟原創
2017-07-02 10:36:094002瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn