【问题标题】: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();
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-06-30
          • 2012-08-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多