本文不再贅述html' target='_blank'>面向對象的知識,本文著重說明PHP的構造函數。
php類的構造函數可以是魔術魔方__construct() 也可以是和類同名的函數,實例如下:
class A{ public function A(){ echo 'A is constructing...'; } } class B{ public function __construct(){ echo 'B is contructing...'; } } $a = new A(); // A is constructing... $b = new B(); // B is constructing...
此外,在繼承時,應該注意的是:
【子類可以不寫構造函數,那么使用父類的構造函數】
class A{ protected $name; public function A(){ echo 'A is constructing...<br>'; } public function set_name($name){ $this->name = $name; } public function get_name(){ return $this->name; } } class B extends A{ /* public function __construct(){ echo 'B is contructing...<br>'; } */ } //$a = new A(); $b = new B(); // A is constructing... $b->set_name('zhangsan'); echo $b->get_name();
【子類如果寫了構造函數,那么不會再調用父類的構造函數了】
class A{ protected $name; public function A(){ echo 'A is constructing...<br>'; } public function set_name($name){ $this->name = $name; } public function get_name(){ return $this->name; } } class B extends A{ public function __construct(){ echo 'B is contructing...<br>'; } } //$a = new A(); $b = new B(); // just echo 'B is contructing...' $b->set_name('zhangsan'); echo $b->get_name(); // zhangsan
【父類的構造函數如果是私有的,可以被繼承,但是子類必須有自己的構造函數,并且明確寫出來】
class A{ protected $name; private function A(){ echo 'A is constructing...<br>'; } public function set_name($name){ $this->name = $name; } public function get_name(){ return $this->name; } } class B extends A{ public function __construct(){ echo 'B is contructing...<br>'; } } //$a = new A(); $b = new B(); // B is contructing... $b->set_name('zhangsan'); echo $b->get_name(); // zhangsan
PHP編程 鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答