【问题标题】:PHP: how to get variable from function in another function? [duplicate]PHP:如何从另一个函数中的函数获取变量? [复制]
【发布时间】:2013-07-25 14:30:32
【问题描述】:

例子

function a(){
    $num = 1;

    function b(){
        echo $num; // how to get $num value?
    }
}

在这种情况下global 不起作用,因为$num 不是全局变量。

【问题讨论】:

  • 请问您为什么决定定义嵌套函数?
  • 你不能。 PHP 只有两个作用域。当前函数作用域和全局作用域。您无法从中间范围访问某些内容,除非您将其作为参数传递。

标签: php function scope


【解决方案1】:
function a() {
    $num = 1;
    function b($num) {
        echo $num;
    };
    b($num);
}
a();

【讨论】:

  • 函数内的函数。这可能不是最好的主意。我将不得不获得一些关于此的信息,我不确定这是一个“最佳实践”编辑:我发现了这个:stackoverflow.com/questions/415969/…
  • 如果计划总是从 a() 中调用 b(),匿名函数是一个很好的解决方案。
【解决方案2】:

您可以使用 S_SESSION 来获取变量吗?

function a(){
    $_SESSION['num'] = 1;

    function b(){
        echo $_SESSION['num'];
    }
}

不确定嵌套函数是不是顺便说一句。

【讨论】:

  • 我不建议为此使用会话。如果您继续这样做,它会使 SESSION 变量变得非常大,而有完全可以接受(甚至可能更好)的方法来做到这一点。
  • 是的,但代码示例太小了,这是我唯一想到的。
猜你喜欢
  • 2018-06-30
  • 2014-01-22
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多