建構子
PHP 5 允行開發者在一個類別中定義一個方法作為建構子。具有建構函式的類別會在每次建立物件時先呼叫此方法,所以非常適合在使用物件之前做一些初始化工作。
注意:
如果子類別中定義了建構子則不會暗中呼叫其父類別的建構子。要執行父類別的建構函數,需要在子類別的建構子中呼叫 parent::__construct()。 (??和其他語言明顯不同??)
例10.8.使用新標準的建構子
class BaseClass {
function __construct() {
}
}
class SubClass extends BaseClass {
function __construct() {
}
}
$obj = new BaseClass();
$obj = new SubClass();
為了實現向後相容性,如果 PHP 5 在類別中找不到 __construct() 函數,它就會嘗試尋找舊式的建構函數,也就是和類別同名的函數。因此唯一會產生相容性問題的情況是:類別中已有一個名為 __construct() 的方法,但它卻不是建構子。
析構函數
PHP 5 引入了析構函數的概念,這類似於其它物件導向的語言,如 C++。析構函數會在到某個物件的所有參考都被刪除或當物件被明確銷毀時執行。
例10.9.析構函數範例
class MyDestructableClass {
function __construct() {
🎜> }
function __destruct() {
print "Destroying " . $this->name . "n"; 建構子>函數一樣,父類別的析構函數不會被引擎暗中呼叫。要執行父類別的析構函數,必須在子類別的析構函數體中明確地呼叫 parent::__destruct()。 (??和其他語言明顯不同??)
注意:
析構函數在腳本關閉時調用,此時所有的頭資訊已經發出。
注意:
試圖在析構函數中拋出一個異常會導致致命錯誤。
以上就介紹了 php基礎:類別與物件3 建構函數和析構函數,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。