帮助我在另一个函数中的函数中获取变量
$variable ="alfa";
function foo(){
$variable ="beta";
$my_function = function(){
global $variable;
return $variable;
};
return $my_function();
}
我想要函数foo();打印“beta”没有“alpha”,我的代码出了什么问题?
print foo(); // this print "alpha" and should print "beta"
答案 0 :(得分:1)
使用use
代替global
。
$variable ="alfa";
function foo(){
$variable ="beta";
$my_function = function() use ($variable){
return $variable;
};
return $my_function();
}
您可以阅读更多相关信息in docs示例#3
答案 1 :(得分:0)
在分配global $variable;
之前,您应该声明$variable ="beta";
。
如果没有,您正在使用功能范围,而不是全局范围。
答案 2 :(得分:0)
尝试清除“变量范围”的概念
在函数foo()
中,你声明变量$ variable,然后在匿名函数中你正在访问你在foo()
中声明的$变量,所以如果你想使用全局$匿名函数内部的变量,在声明函数global $variable
foo()
$variable ="alfa";
function foo(){
global $variable;
$variable ="beta";
$my_function = function(){
global $variable;
return $variable;
};
return $my_function();
}