PHP解構函式與回收機制

來源:互聯網
上載者:User

這篇文章介紹的內容是關於PHP解構函式與回收機制 ,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

// ===筆記部分1===

/*
疑問
1、把對象賦值為其他,比如true 會不會銷毀對象?
答:可以

2、110.php中代碼部分4
為什麼銷毀一個,空2個
最後一個會出現在hr線下面?

答:最後一個銷毀,是因為php頁面執行完畢了,
最後系統回收,$d此時才銷毀,
因此 顯示在hr線後面
*/



// ===代碼部分1===

class Human2 {    public $name = null;    public $gender = null;    public function __construct() {        echo '出生了<br >';    }    public function __destruct() {        echo '再見<br >';    }}$a = new Human2();$b = new Human2();$c = new Human2();$d = new Human2();unset($a);//$b = false;$b = true;//改成true也可以銷毀$c = null;echo '<hr >';



// 對象的回收機制

// ===代碼部分2===

class Human {    public $name = null;    public $gender = null;    public function __destruct() {        echo '再見!<br >';    }}$a = new Human();$b = $c = $d = $a;unset($a);echo '<hr >';

/*
那麼問題來了:
1、死了幾次?
2、死在hr線上,還是死在hr線下?

答:死了一次,在灰線以下。
11101所示,開啟human房子的其中一把a鑰匙沒了,
還有b,c,d三把鑰匙。

直到最終所有代碼執行完,啟動回收機制,
最終再見。
*/



// ===代碼部分3===

class Human {    public $name = '張三';    public $gender = null;    public function __destruct() {        echo '再見!<br >';    }}$a = new Human();$b = $c = $d = $a;echo $a->name,'<br >'; //張三echo $b->name,'<br >'; //張三$b->name ='李四';echo $a->name,'<br >'; //李四echo $b->name,'<br >'; //李四unset($a);echo '<hr >';// hr線// 再見!



// ===代碼部分4===

class Human {    public $name = '張三';    public $gender = null;    public function __destruct() {        echo '再見!<br >';    }}$e = $f = $g = new Human();unset($e);echo 'unset e<br >';unset($f);echo 'unset f<br >';unset($g);// 本行unset觸發對象消亡,然後執行下一行echo gecho 'unset g<br >';

/*
在此處,頁面運行完畢,對象銷毀,執行解構函式
銷毀了幾個對象?

答:
只有一個對象,只死1次
死在系統回收時,即頁面執行完畢,因此在hr線下.
*/

// ===筆記部分1===

/*
疑問
1、把對象賦值為其他,比如true 會不會銷毀對象?
答:可以

2、110.php中代碼部分4
為什麼銷毀一個,空2個
最後一個會出現在hr線下面?

答:最後一個銷毀,是因為php頁面執行完畢了,
最後系統回收,$d此時才銷毀,
因此 顯示在hr線後面
*/


相關推薦:

PHP建構函式詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.