PHP5可以在類中使用__construct()定義一個構(gòu)造函數(shù),具有構(gòu)造函數(shù)的類,會在每次對象創(chuàng)建的時候調(diào)用該函數(shù),因此常用來在對象創(chuàng)建的時候進行一些初始化工作。
class Car { function __construct() { print "構(gòu)造函數(shù)被調(diào)用\n"; } } $car = new Car(); //實例化的時候 會自動調(diào)用構(gòu)造函數(shù)__construct,這里會輸出一個字符串
在子類中如果定義了__construct則不會調(diào)用父類的__construct,如果需要同時調(diào)用父類的構(gòu)造函數(shù),需要使用parent::__construct()顯式的調(diào)用。
class Car { function __construct() { print "父類構(gòu)造函數(shù)被調(diào)用\n"; } } class Truck extends Car { function __construct() { print "子類構(gòu)造函數(shù)被調(diào)用\n"; parent::__construct(); } } $car = new Truck();
同樣,PHP5支持析構(gòu)函數(shù),使用__destruct()進行定義,析構(gòu)函數(shù)指的是當某個對象的所有引用被刪除,或者對象被顯式的銷毀時會執(zhí)行的函數(shù)。
class Car { function __construct() { print "構(gòu)造函數(shù)被調(diào)用 \n"; } function __destruct() { print "析構(gòu)函數(shù)被調(diào)用 \n"; } } $car = new Car(); //實例化時會調(diào)用構(gòu)造函數(shù) echo '使用后,準備銷毀car對象 \n'; unset($car); //銷毀時會調(diào)用析構(gòu)函數(shù)
當PHP代碼執(zhí)行完畢以后,會自動回收與銷毀對象,因此一般情況下不需要顯式的去銷毀對象。
我也來試一試:給Car類編寫一個構(gòu)造函數(shù)與析構(gòu)函數(shù)。
在右側(cè)代碼編輯器第4行輸入下面代碼:
function __construct() { print "構(gòu)造函數(shù)被調(diào)用 \n"; } function __destruct() { print “析構(gòu)函數(shù)被調(diào)用 \n”; }
class Car { function __construct() { print "構(gòu)造函數(shù)被調(diào)用 \n"; } function __destruct() { print “析構(gòu)函數(shù)被調(diào)用 \n”; } } $car = new Car();
請驗證,完成請求
由于請求次數(shù)過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報