詳細說明 PHP 類別繼承時建構子的三種行為:子類未定義建構子自動繼承、子類定義建構子覆蓋父類、透過 parent::__construct() 顯式呼叫父類建構子。
class A {
public $name;
function __construct() { echo $this->name = "小強"; }
}
class B extends A {}
$bb = new B(); // 輸出:小強
class B extends A {
function __construct() { echo "BBBBBB子類"; }
}
$bb = new B(); // 輸出:BBBBBB子類
class B extends A {
function __construct() {
parent::__construct(); // 或 A::__construct();
echo "子類追加邏輯";
}
}
$bb = new B(); // 輸出:小強子類追加邏輯
__construct 即完全覆蓋parent::__construct()__construct 為標準建構子