我在PHP中使用匿名函数,并意识到它们似乎无法访问它们之外的变量.
例子:
$variable = "nothing";
functionName($someArgument, function() {
$variable = "something";
});
echo $variable; //output: "nothing"
这将输出"无".匿名函数有没有办法访问$variable
?
我在PHP中使用匿名函数,并意识到它们似乎无法访问它们之外的变量.
例子:
$variable = "nothing";
functionName($someArgument, function() {
$variable = "something";
});
echo $variable; //output: "nothing"
这将输出"无".匿名函数有没有办法访问$variable
?
是的,use a closure:
functionName($someArgument, function() use(&$variable) {
$variable = "something";
});
请注意,为了能够在匿名函数的作用域之外修改$variable
和检索修改后的值,必须使用&
在闭包中引用它.