PHP 類和對象 —— 構造函數和析構函數的簡單理解

一、構造函數

1.構造函數__construct():每次實例化對象的時候會調用該函數,常用來在對象創建的時候進行初始化工作。

2.子類定義了構造函數之後不會隱式調用父類的構造函數,在子類調用父類的構造函數要用parent::__construct();

3.子類沒有定義構造函數則會從父類繼承(假設父類的構造函數未被定義成private)

class Phone {
    //構造函數
    function __construct(){

        print "父類構造函數被調用\n";

    }
}


class Meizu extends Phone{

    function __construct(){
        
        print "子類構造函數被調用\n";
        
        parent::__construct();

    }

}


$car = new Phone();

二、析構函數

1.析構函數:對象的所有引用被刪除,或者對象被顯示的銷燬時會執行的函數

2.和構造函數一樣,父類的析構函數不會被引擎暗中調用。要執行父類的析構函數,必須在子類的析構函數體中顯式調用 parent::__destruct()。此外也和構造函數一樣,子類如果自己沒有定義析構函數則會繼承父類的

3.析構函數即使在使用 exit() 終止腳本運行時也會被調用。在析構函數中調用 exit() 將會中止其餘關閉操作的運行

class Phone {

    function __destruct(){

        print "析構函數被調用\n";
        
    }

}


$car = new Car();

unset($car); //銷燬時會調用析構函數

一般PHP執行完代碼時,會自動回收與銷燬對象,因此不需要顯式的去銷燬對象,也就是說不用調用__destruct()方法。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章