我在 PHP 中玩弄匿名函数,发现它们似乎无法访问外部变量。 有什么办法可以解决这个问题吗?
例子:
$variable = "nothing"; functionName($someArgument, function() { $variable = "something"; }); echo $variable; //output: "nothing"
这将输出“无”。匿名函数有什么方法可以访问
$variable
是的,使用闭包:
functionName($someArgument, function() use(&$variable) { $variable = "something"; });
注意,为了能够修改
&
如果您的函数很短并且是单线性的,您可以使用箭头函数,从 PHP 7.4 开始:
$variable = "nothing"; functionName($someArgument, fn() => $variable = "something");