假设我有一个FooClass
方法bar()
。在bar()
方法的内部,是否有任何方法可以判断它是否被静态调用,所以我可以区别对待这两种情况?
FooClass::bar();
$baz = new FooClass();
$baz->bar();
答案 0 :(得分:7)
class FooClass {
function bar() {
if ( isset( $this ) && get_class($this) == __CLASS__ ) {
echo "not static";
}
else {
echo "static";
}
}
}
FooClass::bar();
$baz = new FooClass();
$baz->bar();