Эта (упрощенная версия моего кода) не работает:
<?php
$sxml = new SimpleXMLElement('<somexml/>');
function foo(){
$child = $sxml->addChild('child');
}
foo();
?>
Почему? Я хочу получить доступ к $sxml, потому что я хочу регистрировать ошибки на нем, если foo() терпит неудачу. foo() вызывает рекурсивно для создания списка каталогов, поэтому я боюсь, что передача всего $sxml на себя (как в foo($sxml)) может повредить производительность.
Есть ли способ доступа к $sxml внутри $foo без передачи его в качестве аргумента? (PHP 5.2.x +)
EDIT: Что делать, если код выглядит так?
<?php
bar(){
$sxml = new SimpleXMLElement('<somexml/>');
function foo(){
$child = $sxml->addChild('child');
}
foo();
}
bar();
?>