我有一个抽象类Entity。我有一个继承实体类的Person。但我的类Entity无法访问类Person的私有成员。我该怎么做呢?
<?php
abstract class Entity
{
public function view()
{
echo $name; //Fatal Error. Can't Access
}
}
class Person extends Entity
{
private $name;
}
答案 0 :(得分:3)
$name
为private
,因此仅在Person
课程中提供。尝试制作protected
。然后从Entity
班级,使用static::$name;
请注意static
关键字的使用。这是后期静态绑定的一个例子。简单来说,它意味着使用属于派生子的值。
请记住,根据您正在建模的对象,将$name
属性放在Entity
中可能更有意义,以便所有其他子类也具有该属性,而不是重新声明它每一次。然后,您将使用$this->name;