我的问题是关于面向对象 PHP 中的继承机制。如果我希望在其构造函数中的超类中初始化一个类变量,并且所有子类都使用已初始化的变量,我不能在超类的构造函数中执行此操作,因为超类的构造函数不会被隐式调用子类构造函数,就像在 Java 中一样。如果我必须从每个子类构造函数中手动调用超类构造函数,那么简单地在每个子类构造函数中进行初始化并没有任何好处。
我怎么解决这个问题?有任何想法吗?
class superclass {
protected $a;
function __construct() {
$this->a = new Foo();
}
}
class childrenclass1 extends superclass {
function __construct() {
do_something;
}
function childrenfunction() {
$this->a->method(); // not initalized;
}
}