基本クラス:
class A {
public x;
public y;
public function __construct {
$this->x = new X();
$this->y = new Y();
}
}
クラスX
:
class X extends A {
public function __construct {}
public function job() {
echo 'x working!';
}
}
クラスY
:
class Y extends A {
public function __construct {}
public function job() {
var_dump($this->x); // NULL, Why???
$this->x->job();
}
}
問題x->job()
: class 内から呼び出すと、既にインスタンス化Y
されたオブジェクトに完全にアクセスできず、それが.X
var_dump
null
それの何が問題なのですか?
ありがとう!:)
アップデート:
parent::__construct();
子クラスの__construct()
メソッドで使用すると、 が生成されFatal Error: maximum function nesting level of '100' reached, aborting!
ます。そのため、これらの空の__construct()
メソッドを追加します。それを解決する方法はありますか?
ソースコードにもこれがあります:
$base = new A();
つまり、コンストラクターは既に実行されているはずですよね?