【问题标题】:Get a variable in a function within another function PHP在另一个函数PHP中获取一个函数中的变量
【发布时间】:2014-01-22 08:06:36
【问题描述】:
帮我在另一个函数中的函数中获取变量
$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"
【问题讨论】:
标签:
php
function
scope
global
var
【解决方案1】:
你应该在分配$variable ="beta";之前声明global $variable;。
如果不是,您是在函数范围内工作,而不是在全局范围内工作。
【解决方案2】:
使用use 而不是global。
$variable ="alfa";
function foo(){
$variable ="beta";
$my_function = function() use ($variable){
return $variable;
};
return $my_function();
}
你可以阅读更多关于它in docs例子#3
【解决方案3】:
尽量明确“变量作用域”的概念
在函数foo()中,你声明变量$variable,然后在匿名函数中你访问你在foo()中声明的$variable,所以如果你想在匿名函数中使用全局$variable函数,你应该在声明函数foo()后立即创建global $variable
$variable ="alfa";
function foo(){
global $variable;
$variable ="beta";
$my_function = function(){
global $variable;
return $variable;
};
return $my_function();
}