class parents{
public $a;
function __construct(){
echo $this->a;
}
}
class child extends parents{
function __construct(){
$this->a = 1;
parent::__construct();
}
}
$new = new child();//print 1
上記のコードは 1 を出力します。これは、子クラスのインスタンスを作成し、その親から継承されたプロパティに値を割り当てるたびに、その親クラスのプロパティも割り当てられていることを意味します。ただし、以下のコードは異なることを示しています。
class parents{
public $a;
function test(){
$child = new child();
echo $this->a;
}
}
class child extends parents{
function __construct(){
$this->a = 1;
}
}
$new = new parents();
$new->test();//print nothing
子クラスに値を割り当てたところ、親がその子クラスに割り当てられた値を明らかに持っていなかったのはなぜですか?
ありがとう!