这(简化我的代码版本)不工作:无法访问全局变量内部功能
<?php
$sxml = new SimpleXMLElement('<somexml/>');
function foo(){
$child = $sxml->addChild('child');
}
foo();
?>
为什么?我想访问$sxml
,因为如果foo()
失败,我想在其上记录错误。 foo()
递归调用自己创建一个目录列表,所以我担心将整个$sxml
传递给自己(如foo($sxml)
)可能会损害性能。
有没有办法在$foo
内部访问$sxml
而不将其作为参数传递? (PHP 5.2.x +)
编辑:如果代码看起来像这样,实际上该怎么办?
<?php
bar(){
$sxml = new SimpleXMLElement('<somexml/>');
function foo(){
$child = $sxml->addChild('child');
}
foo();
}
bar();
?>
请,做OOP或者只是把它作为参数。可重用性是关键。 – mauris 2011-03-27 13:40:42
@thephpdeveloper我明白你的意思,但我刚刚开始使用PHP,这可能不是我将重用的代码。这更像是一个原型,如果出现错误,我可以扔掉并从头开始。 – 2011-03-27 13:47:25