Как получить доступ к переменной из области видимости родительской функции?

Я хочу, чтобы моя функция обращалась к внешней переменной - конкретно из родительской функции. Однако использование ключевого слова global задает слишком широкие рамки; мне нужно их ограничить. Как мне заставить этот код выплюнуть 'Level 2' вместо 'Level 1'? Нужно ли создавать класс?

<?php
$a = "Level 1";

function first() {
    $a = "Level 2";

    function second() {
        global $a;
        echo $a.'<br />';
    }

    second();
}

first();
//outputs 'Level 1'
?>
5
задан Wiseguy 5 December 2011 в 23:34
поделиться