所以我有这些功能
function a(){
int c = 1;
b(function(){echo $c;});
}
function b($code){
$code();
}
但不知何故,$ c在匿名函数中变得未定义 我知道,匿名功能是它自己的范围,但有什么办法可以使这个工作吗?
答案 0 :(得分:1)
是:您可以使用“使用”声明。
function a()
{
$c = 1;
b(function() use ($c) {
echo $c;
});
}
function b($code){
$code();
}
答案 1 :(得分:0)
http://php.net/manual/en/language.variables.scope.php
当您将$c
放入函数时,它被视为local scope
变量。