Я новичок в PHP ООП. Я хочу предотвратить переопределение свойств родительского класса, когда инициируется дочерний класс. Например, у меня есть Parent
и Child
классы следующим образом:
class Parent {
protected $array = [];
public function __construct() {
}
public function add($value) {
$this->array[] = $value;
}
public function get() {
return $this->array;
}
}
class Child extends Parent {
public function __construct() {
}
}
Во-первых, я инициировал Parent
класс, добавивший 3 элемента к свойству array
:
$parent = new Parent;
$parent->add('a');
$parent->add('b');
$parent->add('c');
Затем я инициировал класс Child
и добавил 1 элемент в свойство array
:
$child = new Child;
$child->add('d');
Фактический результат:
var_dump($parent->show()); // outputs array('a', 'b', 'c')
var_dump($child->show()); // outputs array('d')
Ожидаемый результат:
var_dump($parent->show()); // outputs array('a', 'b', 'c', 'd')
var_dump($child->show()); // outputs array('a', 'b', 'c', 'd')
Как я могу это сделать? Я попробовал это, но это не сработало:
class Child extends Parent {
public function __construct() {
$this->array = parent::get();
}
}