我有一个以下问题:在某个类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 '' ...
。
感谢您的帮助。