【问题标题】:function within function in PHPPHP中的函数内函数
【发布时间】:2009-12-04 09:43:02
【问题描述】:

我无法让函数中的函数正常工作,你认为我下面的内容正确吗?我没有得到预期的结果,如果你能对函数中的函数有所了解,我会很高兴的。

谢谢

function test1 ()

{

    global x;

    $x=123;

    function test2()
    {
    echo $x;
    }

    test2();

}

【问题讨论】:

  • 您的预期结果是什么?这种结构几乎没有意义。你需要它做什么?

标签: php


【解决方案1】:

有效,但test2() 的范围有限。例如,这有效:

[wally@zf ~]$ cat y.php
<?php
function test1 ()
{
        global $x;
        $x=123;

        function test2()
        {
                global $x;
                echo $x;
        }

        test2();
}

test1();
?>
[wally@zf ~]$ php -f y.php
123[wally@zf ~]$

【讨论】:

  • wallyk 感谢您的洞察力,这确实有效。您能解释一下为什么需要在第二个函数中再次将 x 重新声明为全局变量吗?
  • 这样$x就可以在各个函数之外看到了。如果$x=123 设置在test1() 之外,则test1() 不需要global $x
【解决方案2】:

你不能把它作为第一个函数(test1)之外的另一个函数包含进来吗?我很难想象这个用例。

【讨论】:

    【解决方案3】:

    你没有调用函数 test2,所以它没有理由回显 $x。

    另外,你应该在外面构造函数,在这种情况下没有附加值。

    【讨论】:

      猜你喜欢
      • 2012-02-20
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      • 2011-03-25
      • 2015-11-13
      相关资源
      最近更新 更多