Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在串联变量上使用addChild时,PHP SimpleXML出现致命错误_Php_Xml_Simplexml_Addchild - Fatal编程技术网

在串联变量上使用addChild时,PHP SimpleXML出现致命错误

在串联变量上使用addChild时,PHP SimpleXML出现致命错误,php,xml,simplexml,addchild,Php,Xml,Simplexml,Addchild,我试图在串联变量上使用addChild函数,但它似乎不起作用。我想它来自于论点的对象类型,但我似乎无法指出它。 当我尝试使用标准变量时,它可以工作: $prnp = $ndprofileASz2tnrap_portrestrictions->addChild('portRestriction'); 但当我尝试使用多个变量时,会出现一个错误: $asversion = 'z2tnrap'; $nppr = '$ndprofileAS'.$asversion.'_portrestrictio

我试图在串联变量上使用addChild函数,但它似乎不起作用。我想它来自于论点的对象类型,但我似乎无法指出它。 当我尝试使用标准变量时,它可以工作:

$prnp = $ndprofileASz2tnrap_portrestrictions->addChild('portRestriction');
但当我尝试使用多个变量时,会出现一个错误:

$asversion = 'z2tnrap';
$nppr = '$ndprofileAS'.$asversion.'_portrestrictions';
$prnp = $nppr->addChild('portRestriction');
如果我“echo”了$nppr变量,我会得到正确的变量,但是addChild函数会导致错误消息:“致命错误:对非对象调用成员函数addChild()


谢谢您的帮助。

$nppr
此时将只是一个字符串。它不再是simplexml对象了。此外,您的语法也不正确:

$nppr = '$ndprofileAS'.$asversion.'_portrestrictions';
        ^-           ^-

单引号字符串中的变量不进行插值。您正在插入一个literal
$
、一个literal
n
、一个literal
d
,等等。。在strin中,而不是$ndprofileAS变量的值。

谢谢,那么,有没有办法将此变量解释为Simplexml对象(同时保持多个变量的串联)?我不知道您的代码实际要完成什么,或者您是如何得到该片段的,所以。。不对不起,我帮不了你。我从一个表单中得到了“asversion”,它决定了我要在哪里添加子节点。我已经创建了主节点($ndprofileASz2tnrap_portrestrictions和其他节点),但在“if”条件下列出所有这些节点将花费很长时间(而且非常讨厌),因此我将常量部分与特定名称连接起来。有没有办法在SimpleXML元素中解析该字符串?