我正在玩PHP中的匿名函数,并意识到它们似乎没有达到它们之外的变量。 有没有办法解决这个问题?
示例:
$variable = "nothing";
functionName(someArgument, function() {
$variable = "something";
});
echo $variable; //output: "nothing"
这将输出“无”。有没有办法让匿名函数可以访问$variable
?
答案 0 :(得分:223)
是的,use a closure:
functionName(someArgument, function() use( &$variable) {
$variable = "something";
});
请注意,为了能够修改$variable
并检索匿名函数范围之外的修改值,必须使用&
在闭包中引用它。