在另一个函数PHP中获取函数中的变量

时间:2014-01-04 17:28:47

标签: php function scope global var

帮助我在另一个函数中的函数中获取变量

$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"

3 个答案:

答案 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();
}