我有这个代码:
class A {
var $arr = array();
function __construct($para) {
echo 'Not called';
}
}
class B extends A {
function __construct() {
$arr[] = 'new Item';
}
}
由于 B 有自己的构造函数,因此 A 永远不会被调用。
现在我可以调用 parent::__construct($para) 但是 B 类需要知道 A 类需要的参数。
我更喜欢这个:
class A {
var $arr = array();
function __construct($para) {
echo 'Not called';
}
}
class B extends A {
function __construct() {
parent::__construct(); // With the parameters class B was created.
// Additional actions that do not need direct access to the parameters
$arr[] = 'new Item';
}
}
这样的东西会起作用吗?
我不喜欢这样一个事实,即所有扩展类 A 的类都需要定义一个新的构造函数,一旦类 A 更改了它的参数,我想要他们做的就是调用类 A 的构造函数,就像当类 B 没有时一样用自己的 __construct() 方法覆盖它。