php - 是否可以在 PHP 中访问外部局部变量?

标签 php scope

是否可以在 PHP 子函数中访问外部局部变量?

在下面的代码中,我想访问内部函数栏中的变量 $l。在 bar 中将 $l 声明为 global $l 不起作用。

function foo()
{
    $l = "xyz";

    function bar()
    {
        echo $l;
    }
    bar();
}
foo();

最佳答案

你可能会使用闭包来做到这一点......


编辑: 花了一些时间来记住语法,但它看起来应该是这样的:

function foo()
{
    $l = "xyz";
    $bar = function () use ($l)
    {
        var_dump($l);
    };
    $bar();
}
foo();

并且,运行脚本,您将得到:

$ php temp.php
string(3) "xyz"


一些注意事项:

  • 你必须在函数声明后放置一个;!
  • 您可以通过引用使用变量,在变量名前加上&:use (& $l)

有关更多信息,作为引用,您可以查看手册中的此页面:Anonymous functions

关于php - 是否可以在 PHP 中访问外部局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2408908/

相关文章:

javascript - 内联此范围 'binding'

linux - 无法从嵌套子 shell 传递变量

javascript - 什么是 Radius Manager?如何自定义它?

php - 通过 PHP 与 APNS 的持久连接

php - 缓存 PHP 简单 HTML DOM 解析器

PHP 5.3 命名空间和使用

php - 在使用ajax将其发送到服务器之前如何检查表单中的值

可以覆盖返回的结构吗?

php - 访问父变量

java - 该变量的范围