有没有办法如何在PHP中确定父类中的子实例?假设我们有这个代码:
class Parent {
public function InstanceOfChild() {
//What to put here to display "Child class is instance of ChildClass123"?
}
}
class ChildClass123 extends Parent {
//Some code here
}
我需要做的是(如果可能的话)是创建方法InstanceOfChild()
,它将告诉我子类的实例,因为很多类可以是我父类的子类,但我想(让我们说) )log,哪个子调用哪些方法。谢谢你的帮助!
答案 0 :(得分:8)
您正在寻找的功能 get_called_class()
。
class Parent1 {
public static function whoAmI() {
return get_called_class();
}
}
class Child1 extends Parent1 {}
print Child1::whoAmI(); // prints "Child1"
答案 1 :(得分:2)
class Parent {
public function InstanceOfChild() {
$class = get_class($this);
return $class == 'Parent'? // check if base class
"This class is not a child": // yes
"Child class is instance of " . $class; // its child
}
}
请注意:
$this instanceof Parent
将始终返回true,因为父级和子级都是Parent类的实例。
答案 2 :(得分:0)
您可以使用get_class
。因此,您必须设置以下代码:
echo "Child class is instance of ".get_class($childInstance);
(我不是php开发人员,因此语法可能有误)