PHP:如果保护变量具有不同的值,如何从子类访问保护变量?

问题描述:

如何能保护变量从子类进行访问,如果它有不同的价值?PHP:如果保护变量具有不同的值,如何从子类访问保护变量?

例错误的访问:父:: $ _我给了错误

class Father{ 
    protected $_my=array('a','b'); 
} 

class Child{ 
    protected $_my=array('c','d'); 
    function __construct(){ 
    parent::__construct(); 
    $this->_my=array_merge(parent::$_my,$this->_my); 
    } 
} 

感谢, 优素福

+1

如果你想将该类从另一个继承,你必须使用`extends`关键字 - 比如`一个文件里有Father` – 2011-01-30 22:08:18

+1

受保护的变量可以被儿童访问的,这就是它是如何工作的? ``在$ Child`将_my`重写`Father` – 2011-01-30 22:10:29

$this->_my将会从父,当你实例化一个子类继承,所以你只需要使用:

$this->_my = array_merge($this->_my, array('c','d')); 

您的设计出了问题。您已经声明了一个变量,可以由父内部的子项访问。

尝试增加值已经存在的变量,而不是重新定义它。