您必须将其传递给函数:
<?php $sxml = new SimpleXMLElement('<somexml/>'); function foo($sxml){ $child = $sxml->addChild('child'); } foo($sxml);?>或将其声明为global:
<?php $sxml = new SimpleXMLElement('<somexml/>'); function foo(){ global $sxml; $child = $sxml->addChild('child'); } foo();?>如果变量不是全局变量,而是在外部函数中定义的,则第一个选项(作为参数传递)的作用相同:
<?php function bar() { $sxml = new SimpleXMLElement('<somexml/>'); function foo($sxml) { $child = $sxml->addChild('child'); } foo($sxml); } bar();?>或者,通过在子句中声明变量来创建闭包
use。
<?php function bar() { $sxml = new SimpleXMLElement('<somexml/>'); function foo() use(&$xml) { $child = $sxml->addChild('child'); } foo(); } bar();?>


