可以以嵌套方式调用lambda函数
<?php
$func=function() use($something,$func /** as you know it will be undefined so what could be other way arround**/){
if($something){
$func();
}
}
答案 0 :(得分:5)
$func
传递给$func
时, $func
尚未定义。 $func = null;
$func = function() use (&$func) {
}
只会在函数定义之后定义,这对于它来说有点太迟了。
简单的解决方法如下:
ACF
答案 1 :(得分:0)
use $func
无法成功,因为直到lambda创建完成并返回lamba后才会定义$func
。 PHP无法计时旅行。
你也做不了类似的事情:
$func = '';
$func = function() use $something, $func ....;
当它绕过$func is not defined
时,它还会在lambda创建时将$func
的值“锁定”到lambda中:
php > $foo = 'bar';
php > $baz = function() use($foo) { echo $foo; };
php > $baz();
bar
php > $foo = 'qux';
php > $baz();
bar