Когда я пытаюсь переопределить переменную класса так же, как переопределить метод класса в PHP. Как:
class DataMapper {
protected $_name = null;
public function printName() {
echo $this->_name;
}
}
class Model extends DataMapper {
protected $_name = 'Ana';
}
$test = new Model();
$test->printName();
Он печатает 'Ana'.
Почему PHP может так поступить? Это нарушает закон объектно-ориентированной парадигмы