好的,帖子标题可能有点令人困惑。
我有这段代码:
class A {
public static foo() {
return get_called_class();
}
}
class B extends A {
}
class C {
public function bar() {
echo B::foo();
}
}
输出:C
我想要进入foo()的是B的类名。如果没有B类的更改,我怎么能这样做呢?
此致 Jan Oliver
PS:__ CLASS __,get_class()不起作用。
答案 0 :(得分:2)
在PHP 5.3之前,如果没有黑客攻击,这是不可能的,并且被称为后期静态绑定,这是一个可谷歌的术语。
如果您有兴趣,可以在这篇文章中找到答案:Faking Late Static Binding before php 5.3
答案 1 :(得分:0)
我认为您可以使用内置的 Reflection class 。