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

Эта (упрощенная версия моего кода) не работает:

<?php
    $sxml = new SimpleXMLElement('<somexml/>');

    function foo(){
        $child = $sxml->addChild('child');
    }

    foo();
?>

Почему? Я хочу получить доступ к $ sxml , потому что я хочу регистрировать в нем ошибки, если foo () не работает. foo () рекурсивно вызывает себя для создания списка каталогов, поэтому я опасаюсь, что передача всего $ sxml на себя (как в foo ($ sxml) ) могла бы снижает производительность.

Есть ли способ получить доступ к $ sxml внутри $ foo , не передавая его в качестве аргумента? (PHP 5.2.x +)

РЕДАКТИРОВАТЬ: Что, если код действительно выглядит так?

<?php
    bar(){
        $sxml = new SimpleXMLElement('<somexml/>');
        function foo(){
            $child = $sxml->addChild('child');
        }
        foo();
    }
    bar();
?>
56
задан Camilo Martin 27 March 2011 в 13:55
поделиться