PHP析構函數與回收機制實例詳解

小云云
發布: 2023-03-22 21:20:02
原創
1171 人瀏覽過

本文主要和大家分享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 &#39;出生了<br >&#39;;
    }    public function __destruct() {
        echo &#39;再见<br >&#39;;
    }
}$a = new Human2();$b = new Human2();$c = new Human2();$d = new Human2();unset($a);//$b = false;$b = true;//改成true也可以销毁$c = null;echo &#39;<hr >&#39;;
登入後複製



// 物件的回收機制

// ===程式碼部分2===

class Human {

    public $name = null;    public $gender = null;    public function __destruct() {
        echo &#39;再见!<br >&#39;;
    }
}$a = new Human();$b = $c = $d = $a;unset($a);echo &#39;<hr >&#39;;
登入後複製

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

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

直到最終所有程式碼執行完,啟動回收機制,
最終再見。
*/
PHP析構函數與回收機制實例詳解
PHP析構函數與回收機制實例詳解



// ===程式碼部分3===

class Human {

    public $name = &#39;张三&#39;;    public $gender = null;    public function __destruct() {
        echo &#39;再见!<br >&#39;;
    }
}$a = new Human();$b = $c = $d = $a;echo $a->name,&#39;<br >&#39;; //张三echo $b->name,&#39;<br >&#39;; //张三$b->name =&#39;李四&#39;;echo $a->name,&#39;<br >&#39;; //李四echo $b->name,&#39;<br >&#39;; //李四unset($a);echo &#39;<hr >&#39;;// hr线// 再见!
登入後複製



#// ===程式碼部分4===

class Human {

    public $name = &#39;张三&#39;;    public $gender = null;    public function __destruct() {
        echo &#39;再见!<br >&#39;;
    }
}$e = $f = $g = new Human();unset($e);echo &#39;unset e<br >&#39;;unset($f);echo &#39;unset f<br >&#39;;unset($g);// 本行unset触发对象消亡,然后执行下一行echo gecho &#39;unset g<br >&#39;;
登入後複製

/*
在此處,頁面運行完畢,物件銷毀,執行析構函數
銷毀了幾個物件?

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

#相關推薦:

php建構子與析構函式詳解

#php 建構子與析構函式的用法詳解

掌握php垃圾回收機制

以上是PHP析構函數與回收機制實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板