如何判断PHP中是否静态调用函数?

时间:2010-09-29 17:14:41

标签: php oop

  

可能重复:
  How to tell whether I’m static or an object?

假设我有一个FooClass方法bar()。在bar()方法的内部,是否有任何方法可以判断它是否被静态调用,所以我可以区别对待这两种情况?

FooClass::bar();
$baz = new FooClass();
$baz->bar();

1 个答案:

答案 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();