以某种方式修改作为数组的父公共var是否可行,以便在子类中它将包含更多项?
现在我只是在物理上重复父数组,然后向它添加一些项目:
class A {
public $arr = ['hello'];
}
class B extends A {
public $arr = ['hello','world']; //wanna get rid of 'hello' and use parent
}
答案 0 :(得分:3)
字段声明应命名为$arr
,而不是arr
。而且,您不应该在子类中重新声明相同的字段。您可以在构造函数中更改它:
class A {
public $arr = ['hello'];
}
class B extends A {
public function __construct() {
$this->arr []= 'world';
}
}
小测试:
$a = new A(); print_r( $a->arr );
$b = new B(); print_r( $b->arr );
产生
Array
(
[0] => hello
)
Array
(
[0] => hello
[1] => world
)