class parent
{
public function methodInParentClass()
{
echo "In parent class called from child class of:";
}
}
class childOne extends parent
{
public $childProperty = "in childOne property";
}
class childTwo extends parent
{
public $childProperty = "in childTwo property";
}
好的,我们有2个子类都扩展了父类。现在,如果我打电话
childTwo->methodInParentClass()
问题:
1)methodInParentClass如何确定调用哪个类?请注意:无法通过变量传递名称。
2)如果#1可以实现,我怎样才能调用孩子的班级财产?我可以实例化一个新类,然后从中调用它,但是不会出现一些性能问题(特别是因为我的项目可能会这样做很多)?
提前致谢!
答案 0 :(得分:2)
实际上,你的问题没什么意义。让我解释一下:
1)是的,您可以使用父方法调用get_class($this)
确定当前类:
public function methodInParentClass()
{
echo "In parent class called from child class of:".get_class($this);
}
2)(这就是我怀疑这种感觉的原因)。请注意,在调用某个方法时,例如,当您发布$childTwo->methodInParentClass()
时,$childTwo
是类childTwo
的实例 - 您将使用childTwo
上下文执行此操作。因此,所有“子”属性都是当前实例的属性,即可通过$this
变量访问。