一、構造函數
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()方法。