我尝试在其子类中访问父类属性,但我一直收到此错误 致命错误:未定义的类常量' arms'在blabla.php的第26行。 这是我在下面的代码blabla.php
blabla.php
<?php
class mother
{
public $legs;
public $arms;
public $eyes;
function say($arm,$eye,$leg)
{
$this->arms = 'pretty';
$this->eyes = 'stunning';
$this->legs = 'beautiful slim';
}
}
class daughter extends mother
{
public $newArms;
public $newEyes;
public $newLegs;
public function newSay()
{
$this->newArms = parent::arms;
$this->newEyes = parent::eyes;
$this->newLegs = parent::legsparent::arms;
echo 'I have a beautiful daughter who has '.$this->newArms.' arms, '.$this->newEyes.' eyes and '.$this->newLegs.' legs';
}
}
$baby = new daughter();
$baby->newSay();
?>
如果我的代码中有错误,请告诉我以及如何纠正它。 提前谢谢。
答案 0 :(得分:1)
你的语法错了。
ClassName::NAME
用于访问类常量,如错误消息所示。
使用类'body中的const
关键字定义类常量。
但是,您想要访问对象的属性。您必须使用$this
作为
在方法体内:$this->propertyName
。您必须确保该属性对其子类可见,因此您需要使其受保护或公开,或者实现魔术__get
方法或定义自定义getter和setter并调用它们而不是实际属性。
您也不要使用parent
关键字。 parent
始终查找父类的静态字段,并且通常不与实例绑定。 (但是,您可以使用它在子类的上下文中从父类调用方法)