我有一个超类,其中包含属性设置它们的方法 class Super{ private $property; function __construct($set){ $this-property = $set; }} 然后我有一个需要使用该属性的子类 class Sub extends Super{ private $sub_property
class Super{ private $property; function __construct($set){ $this->property = $set; } }
然后我有一个需要使用该属性的子类
class Sub extends Super{ private $sub_property function __construct(){ parent::__construct(); $this->sub_property = $this->property; } }
但我不断收到错误
Notice: Undefined property: Sub::$property in sub.php on line 7
我哪里错了?
错误是说它正在尝试找到一个名为$property的局部变量,该变量不存在.要按照您的意图在对象上下文中引用$property,您需要$this和箭头.
$this->sub_property = $this->property;
其次,上面的行将失败,因为$property是Super类的私有属性.改为使其受到保护,因此它是继承的.
protected $property;
第三,(感谢Merijn,我错过了这个),Sub需要扩展Super.
class Sub extends Super