Php 以任何方式访问父级';谁的属性被子对象覆盖?

Php 以任何方式访问父级';谁的属性被子对象覆盖?,php,subclass,class-instance-variables,Php,Subclass,Class Instance Variables,是否有办法访问被子级覆盖的父级值 父项::$prop:应为静态。和:self::$prop一样 class base { public $name = 'base'; public function __construct() { echo $this->name . "\n"; echo self::$name . "\n"; } } class sub extends base { publi

是否有办法访问被子级覆盖的父级值

父项::$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();

我不知道这是不是最好的方法,但它是有效的。有关更多信息,请查看以下链接:


base中的$name不是静态的,因此您不能自己访问它::$prop,另外,当您使用与父变量相同的名称声明非静态变量时,它将被覆盖,并且无法访问base one
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];
}