PHP:如果子类有不同的值,如何从子类访问受保护的变量?
如果受保护变量具有不同的值,如何从子类访问该变量 错误访问示例:父项::$\u我的错误PHP:如果子类有不同的值,如何从子类访问受保护的变量?,php,oop,inheritance,Php,Oop,Inheritance,如果受保护变量具有不同的值,如何从子类访问该变量 错误访问示例:父项::$\u我的错误 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);
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);
}
}
谢谢,
Yosef
$this->\u my
将在实例化子类时从父类继承,因此您只需使用:
$this->_my = array_merge($this->_my, array('c','d'));
$this->\u my
将在实例化子类时从父类继承,因此您只需使用:
$this->_my = array_merge($this->_my, array('c','d'));
你的设计有问题。您已经声明了一个可以由父级中的子级访问的变量
尝试向现有变量添加值,而不是重新定义它 您的设计有问题。您已经声明了一个可以由父级中的子级访问的变量
尝试向现有变量添加值,而不是重新定义它 如果希望类从另一个类继承,则必须使用
extends
关键字,就像class-Child-extends-Father
子类可以访问受保护的变量一样,这就是它的工作方式$\u my
在子类中
将覆盖在父类中设置的值
如果您希望该类从另一个类继承,则必须使用扩展
关键字-如类子类扩展父类
子类可以访问受保护的变量,这就是它的工作方式吗$\u我的
在Child
中会覆盖在Father
中设置的值。谢谢,我在应用程序中写的东西是知道的,但是我如何用parent调用呢?正如Chris提到的,$\u我的
是从父级继承给子级的。这一切都是一样的,没有“父属性”。您可以通过$this->\u my
像访问任何其他属性一样访问它。谢谢,这是我在应用程序中编写的内容,但是我如何使用父级调用它呢?正如Chris提到的,$\u my
从父级继承到子级。这一切都是一样的,没有“父属性”。您可以通过$this->\u my
像访问任何其他属性一样访问它。