举一个人为的例子,我想通过回调函数从另一个上下文调用一个 protected static
方法:
class Foo {
protected static function toBeCalled() { }
public static function bar() {
functionThatAcceptsACallback(function () {
self::toBeCalled();
});
}
}
这在 PHP 5.3 中可行吗?我找不到让它工作的方法...
最佳答案
It's not possible , 但它将在 5.4 中与闭包中的 $this
支持一起出现。
Added closure $this support back. (Stas)
编辑
这适用于 5.4alpha1。
class A
{
private function y()
{
print "y".PHP_EOL;
}
static private function z()
{
print "z".PHP_EOL;
}
function x()
{
return function() {
$this->y();
self::z();
};
}
}
$class = new A();
$closure = $class->x();
$closure();
/*
Output:
y
z
*/
关于php - 在匿名回调中使用 'self'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644288/