В любом случае, чтобы получить доступ к свойствам родителей, которые перезаписываются дочерними элементами?
Есть ли работа, чтобы получить доступ к родительским ценностям, которые были перезаписаны ребенком?
parent:: $ prop: ожидается, что будет статичным. и то же самое с: self::$prop
class base {
public $name = 'base';
public function __construct()
{
echo $this->name . "\n";
echo self::$name . "\n";
}
}
class sub extends base {
public $name = 'sub';
public function __construct()
{
parent::__construct(); // output: sub
// Fatal error
echo $this->name . "\n"; // output: sub
echo parent::$name . "\n"; // Fatal error
}
}
new sub();
1 ответ
Решение
Я не знаю, это лучший способ, но это работает. Для получения дополнительной информации вы можете посмотреть по ссылке: http://www.php.net/manual/en/ref.classobj.php
public function __construct()
{
parent::__construct(); // output: sub
echo $this->name . "\n"; // output: sub
echo $this->getParentProp('name'); //output: base
}
public function getParentProp($name)
{
$parent = get_class_vars(get_parent_class($this));
return $parent[$name];
}