在PHP中修改子类中的父公共变量

时间:2016-02-20 15:31:36

标签: php oop

以某种方式修改作为数组的父公共var是否可行,以便在子类中它将包含更多项?

现在我只是在物理上重复父数组,然后向它添加一些项目:

class A {
    public $arr = ['hello'];
}

class B extends A {
    public $arr = ['hello','world']; //wanna get rid of 'hello' and use parent
}

1 个答案:

答案 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
)