функция внутри функции в PHP - PullRequest
1 голос
/ 04 декабря 2009

У меня проблемы с получением функции внутри работающей функции, как вы думаете, то, что у меня ниже, сделано верно? Я не получаю ожидаемых результатов, если бы вы могли пролить свет на функции внутри функций, я бы оценил их.

спасибо

function test1 ()

{

    global x;

    $x=123;

    function test2()
    {
    echo $x;
    }

    test2();

}

Ответы [ 3 ]

3 голосов
/ 04 декабря 2009

Работает, но область действия 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 ~]$
0 голосов
/ 04 декабря 2009

Вы не вызываете функцию test2, поэтому у нее нет причин выводить $ x.

кроме того, вы должны создать функцию снаружи, в этом случае нет добавленной стоимости.

0 голосов
/ 04 декабря 2009

Разве вы не можете просто включить ее как другую функцию вне первой функции (test1)? У меня проблемы с изображением варианта использования для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...