代码之家  ›  专栏  ›  技术社区  ›  GSto

如何判断函数是否在PHP中被静态调用?[复制]

  •  2
  • GSto  · 技术社区  · 14 年前

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

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

    FooClass::bar();
    $baz = new FooClass();
    $baz->bar();
    
    1 回复  |  直到 7 年前
        1
  •  7
  •   Galen    11 年前
    class FooClass {
    
        function bar() {
            if ( isset( $this ) && get_class($this) == __CLASS__ ) {
                echo "not static";
            }
            else {
                echo "static";
            }
        }
    
    }
    
    FooClass::bar();
    $baz = new FooClass();
    $baz->bar();