php5開始可以在類中宣告__construct構造方法,當物件被例項化的時候,該方法被呼叫。
注意:1.如果在繼承的子類中沒有構造方法而父類中有構造方法,那麼當例項化子類時,父類的構造方法會被隱式呼叫。
2.如果子類有構造方法,父類中也有構造方法,那麼子類要顯示呼叫parent::__construct()才能父類的構造方法。
為了向後相容,如果在php5類中沒有找到__construct()方法,它會去找與類名相同的方法名的構造器,但是如果同時使用兩個構造器,有可能會發生 e_strict 級別的錯誤資訊:
(以下**是本人web環境:win32+php5.3.8+apache2.2測試)
<?php
class b
public function __construct()
public function other()
}$b = new b();
?>
結果:strict standards: redefining already defined constructor for class b in d:\xampp\htdocs\test3\class.php on line 8
this is __construct()
但僅調換下方法的位置結果卻不一樣:
<?php
class x
public function x()
public function other()
}$x = new x();
?>
其實,從php5.3.3開始,與類名相同的方法不再做為類的構造方法,命名空間類也一樣,要是使用的是php5.3.3以上的版本,就不能使用與類同名的方法作為構造方法了:
<?php
namespace foo;
class bar
}?>
如果非要在php5.3.3以上同時使用兩個構造器,那麼可以這樣:
<?php
class y
public function y()
public function other()
}$y = new y();
?>
php的建構函式理解
建構函式 是一種特殊的方法。主要用來在建立物件時初始化物件,即為物件成員變數 賦初始值,總與new運算子 一起使用在建立物件的語句中。特別的乙個類可以有多個建構函式 可根據其引數個數的不同或引數型別的不同來區分它們 即建構函式的過載 經常可以看到這樣 function construct param...
對C 預設建構函式的理解
在文章開始之前,首先指出對於c 新手的兩個常見的誤解 一 任何class如果沒有定義default constructor,就會被合成出乙個來。二 編譯器合成出來的default constructor會明確設定 class內每乙個data member的預設值 首先我們來討論第乙個誤解。編譯器並不...
對php函式的簡單理解
function foo arg 1 arg 2 arg n functionc fun1 fun2 function fun1 a b 1 fun1 b 根據函式的定義,b是引用傳遞 echo b 輸出 2,因為 b在函式中執行了 a 注意 符號 需要改變變數值的時候需要新增 這個 是執行 a 後...