В любом случае, чтобы получить доступ к свойствам родителей, которые перезаписываются дочерними элементами?

Есть ли работа, чтобы получить доступ к родительским ценностям, которые были перезаписаны ребенком?

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];
}
Другие вопросы по тегам