我可以向上转换一个对象到它的父对象吗?
示例代码class ClassA {
public function foo(){
echo get_class($this);
}
}
class ClassB extends ClassA {
public function foo(){
echo get_class($this); // prints ClassB :)
parent::foo(); // prints ClassB / I want ClassA :(
}
}
$B = new ClassB();
$B->foo();
在我的场景中,我正在构建ClassB,我想覆盖函数ClassB::Foo()扩展其行为,然后处理控件返回到它的父函数ClassA::Foo(),但代码中断,因为它现在是ClassB的对象。请不要因为"代码有味道"而责怪我,因为我现在知道它很丑了!a班已经不受我控制了……: -)
尝试使用__CLASS__
魔法常数。它返回当前所在的类名,而不管是否进行继承。