これはコードによって異なります。親コンストラクタを呼び出さないと、何も起こりませんが、親コンストラクタが親クラスのために何かを初期化している場合は、すべて省略されます。考えてみましょう、とこれで遊ぶ:
<?php
class X {
private $_a;
public function __construct($a) {
echo 'X::construct ';
$this->_a = $a;
}
public function getA() {
return $this->_a;
}
}
class Y extends X {
private $_b;
public function __construct($a,$b) {
echo 'Y::construct ';
parent::__construct($a);
$this->_b = $b;
}
public function getAB() {
return $this->_b + $this->getA();
}
}
$n = new Y(3,2);
echo $n->getAB();
それはあなたがこれを実行する場合、それは(他ダンプの中で)5を出力していることを確認するのは簡単です。しかし、あなたがclass Y
親コールparent::__construct($a);
とコメントすると、あなたは2になります。これがこの場合の結果です。
マニュアルを確認するhttp://php.net/manual/en/language.oop5.php – sephoy08