PHP:获取静态方法引用

PHP:获取静态方法引用,php,class,reference,static,Php,Class,Reference,Static,我想从同一个类中的另一个静态方法获取静态方法的引用,但是PHP总是将这两行(参见下面的示例代码)解释为对常量的访问。在PHP中不可能获得对静态方法的引用吗 class foo { public static function test() { self::bar(); // calling (not referencing) works $bar_reference = self::bar; // Error: Undefined class

我想从同一个类中的另一个静态方法获取静态方法的引用,但是PHP总是将这两行(参见下面的示例代码)解释为对常量的访问。在PHP中不可能获得对静态方法的引用吗

class foo
{
    public static function test()
    {
        self::bar();  // calling (not referencing) works
        $bar_reference = self::bar;  // Error: Undefined class constant 'bar'
    }

    public static function bar()
    {
        echo "hello";
    }
}

foo::test();
$bar_reference = foo::bar;  // Error: Undefined class constant
再次澄清一下:我不想调用静态方法-我只想获取对它的引用。

您可以创建一个类似以下的方法:

class foo 
{
    public static function test()
    {   
        $bar_reference = array(__CLASS__, 'bar');
        // Call it
        $bar_reference();
    }   

    public static function bar()
    {   
        echo "hello";
    }   
}

foo::test();
$bar_reference = foo::bar();

PHP没有对标识符的引用。只能引用变量。或者对回调使用字符串化标识符。@马里奥:无论出于何种目的,字符串化标识符实际上是PHP中的一个引用,如果不可能,请确定。但我不明白为什么这是否决我的问题的理由(或者我问错了什么?)好吧。您想如何处理参考资料?