我有一个匿名函数,应该调用自己.但是,我手头没有变量或函数名,所以我希望找到一个函数,它可以在函数的上下文中返回"this".有这样的事吗?
这是一个例子:
$f = function() use($bar, $foo) {
// call this function again.
};
Run Code Online (Sandbox Code Playgroud)
这样打电话:
call_user_func(__FUNCTION__);
Run Code Online (Sandbox Code Playgroud)
导致这个:
警告:call_user_func()期望参数1是有效的回调函数,找不到函数"{closure}"或函数名无效
如果我尝试将$ f放入use-list,那么它表示该变量未定义(因为它还没有).
Pau*_*xon 58
__FUNCTION__ 不能用于匿名函数
将包含匿名函数的变量作为'use'子句中的引用传递....
$f = function() use($bar, $foo, &$f) {
$f();
};
Run Code Online (Sandbox Code Playgroud)
好的,我发现了这样做的方法:
$f = function() use(&$f) {
$f();
};
$f();
Run Code Online (Sandbox Code Playgroud)
关键是要传递$ f作为参考.因此,PHP不会尝试传递值,而是传递对内存槽的引用.
| 归档时间: |
|
| 查看次数: |
9445 次 |
| 最近记录: |