2013-10-23 88 views
0

是否有任何解決方法可以訪問由孩子覆蓋的商品的父母值?無論如何訪問父母的財產被兒童覆蓋的物品?

parent :: $ prop:期望是靜態的。和同樣:self :: $道具

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(); 
+0

$名稱也不是一成不變的,所以你不能訪問它自身:: $道具,另外,當你聲明的非靜態變量具有相同的名稱作爲父母的一個 - 它將被覆蓋,並且沒有基礎的一個 –

回答

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]; 
} 
+0

美麗。謝謝。 –