php建構子是類別中的一個特殊函數,當使用 new 運算元建立一個類別的實例時,建構子將會自動呼叫。
當函數與類別同名時,這個函數將成為建構子。
如果一個類別沒有建構函數,則呼叫基底類別的建構函數,如果有的話,則呼叫該建構函數。 (推薦學習:PHP程式設計從入門到精通)
<?php class Auto_Cart extends Cart { function Auto_Cart(){ $this -> add_item("10", 1); } } ?>
上文定義了一個Auto_Cart 類,即Cart 類別加上一個建構函數,當每次都使用「new」建立一個新的Auto_Cart 類別實例時,建構子會自動呼叫並將一件商品的數目初始化為「10」。
建構函式可以使用參數,而且這些參數可以是可選的,它們可以讓建構子更有用。為了依然可以不帶參數地使用類,所有建構函數的參數應該提供預設值,使其可選。
<?php class Constructor_Cart extends Cart { function Constructor_Cart($item = "10", $num = 1){ $this -> add_item($item, $num); } } //买些同样的无聊老货 $default_cart = new Constructor_Cart; //买些实在货... $different_cart = new Constructor_Cart("20", 17); ?>
void __construct ([mixed $args [, $... ]])
PHP 5 允行開發者在一個類別中定義一個方法作為建構子。具有建構函式的類別會在每次建立物件時先呼叫此方法,所以非常適合在使用物件之前做一些初始化工作。
注意
如果子類別中定義了建構函式則不會暗中呼叫其父類別的建構子。要執行父類別的建構函數,需要在子類別的建構子中呼叫parent::__construct()。
使用新標準的建構子:
<?php class BaseClass{ function__construct(){ print "InBaseClassconstructor\n"; } } class SubClass extends BaseClass{ function__construct(){ parent::__construct(); print "InSubClassconstructor\n"; } } $obj = new BaseClass(); $obj = new SubClass(); ?>
以上是php什麼是建構函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!