【问题标题】:PHP scope issue in anonymous function匿名函数中的 PHP 范围问题
【发布时间】:2017-03-07 08:18:13
【问题描述】:

所以我有这些功能

function a(){
    int c = 1;
    b(function(){echo $c;});
}

function b($code){
    $code();
}

但不知何故 $c 在匿名函数中变得未定义 我知道这是因为匿名函数是它自己的范围,但是有什么办法可以使它工作吗?

【问题讨论】:

  • 这是 PHP 吗?因为您已将其标记为 PHP,但您的代码不是

标签: php scope anonymous-function


【解决方案1】:

是的:您可以使用“使用”语句。

function a()
{
    $c = 1;
    b(function() use ($c) {
        echo $c;
    });
}

function b($code){
    $code();
}

【讨论】:

    【解决方案2】:

    http://php.net/manual/en/language.variables.scope.php

    当您将$c 放入函数中时,它被视为local scope 变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 2013-01-11
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      相关资源
      最近更新 更多