相关疑难解决方法(0)

无法访问函数内的全局变量

这(我的代码的简化版)不起作用:

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

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

    foo();
?>
Run Code Online (Sandbox Code Playgroud)

为什么?我想访问,$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();
?>
Run Code Online (Sandbox Code Playgroud)

php variables scope global-variables

56
推荐指数
3
解决办法
9万
查看次数

标签 统计

global-variables ×1

php ×1

scope ×1

variables ×1