访问父函数中定义的变量

2022-08-30 18:58:44

有没有办法从内部访问?$fooinner()

function outer()
{
    $foo = "...";

    function inner()
    {
        // print $foo
    }

    inner();
}

outer();

答案 1

PHP<5.3 不支持闭包,因此您必须将$foo传递给 inner() 或从 outer() 和 inner() (BAD) 中使$foo全局。

在 PHP 5.3 中,您可以

function outer()
{
  $foo = "...";
  $inner = function() use ($foo)
  {
    print $foo;
  };
  $inner();
}
outer();
outer();

答案 2

还是我错过了你试图做的更复杂的事情?

function outer()
{
    $foo = "...";

    function inner($foo)
    {
        // print $foo
    }

    inner($foo);
}

outer();

编辑好吧,我想我明白你想做什么。您可以使用 global 对使用 global 的类执行此操作,但不确定此特定情况


推荐