从php中的匿名函数访问受保护的静态方法?

时间:2016-11-09 19:13:49

标签: php static-methods

我有一个以下问题:在某个类A的静态方法中我定义了内部的匿名函数我想调用类A的另一个受保护的静态方法。问题是我需要在php 5.3中使它工作。有任何想法吗?以下是示例代码:

class A {
    public static function test() 
    {
        $class = new static;
        $f = function () use ($class) {
            // problem: I need to call static::foo() from here
            return $class::foo();
        };

        print $f();
    }
    protected static function foo() { return 1; }
}

class B extends A {
    protected static function foo() { return 2; }
}

// assuming this will output 2
B::test();

这适用于php> = 5.4,但在php 5.3中我得到Fatal error: Call to protected method B::foo() from context '' ...

感谢您的帮助。

0 个答案:

没有答案