PHP5可以在類中使用__construct()定義一個構造函數,具有構造函數的類,會在每次對象建立的時候調用該函數,是以常用來在對象建立的時候進行一些初始化工作。
class Car {
function __construct() {
print "構造函數被調用\n";
}
}
$car = new Car(); //執行個體化的時候 會自動調用構造函數__construct,這裡會輸出一個字元串
在子類中如果定義了__construct則不會調用父類的__construct,如果需要同時調用父類的構造函數,需要使用parent::__construct()顯式的調用。
class Car {
function __construct() {
print "父類構造函數被調用\n";
}
}
class Truck extends Car {
function __construct() {
print "子類構造函數被調用\n";
parent::__construct();
}
}
$car = new Truck();
同樣,PHP5支援析構函數,使用__destruct()進行定義,析構函數指的是當某個對象的所有引用被删除,或者對象被顯式的銷毀時會執行的函數。
class Car {
function __construct() {
print "構造函數被調用 \n";
}
function __destruct() {
print "析構函數被調用 \n";
}
}
$car = new Car(); //執行個體化時會調用構造函數
echo '使用後,準備銷毀car對象 \n';
unset($car); //銷毀時會調用析構函數
當PHP代碼執行完畢以後,會自動回收與銷毀對象,是以一般情況下不需要顯式的去銷毀對象。