【发布时间】:2011-07-23 21:36:30
【问题描述】:
这(我的代码的简化版本)不起作用:
<?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 或将其作为参数传递。可重用性是关键。
-
@thephpdeveloper 我理解你的意思,但我刚刚开始使用 PHP,这可能不是我将重用的代码。它更像是一个原型,如果出现问题,我可以扔掉并从头开始。
标签: php variables scope global-variables