【问题标题】:PHP SimpleXML fatal error when using addChild on a concatenated var在连接的 var 上使用 addChild 时出现 PHP SimpleXML 致命错误
【发布时间】:2012-11-03 05:51:50
【问题描述】:

我正在尝试对连接的 var 使用 addChild 函数,但它似乎不起作用。我想它来自参数的对象类型,但我似乎无法将手指放在它上面。 当我尝试使用标准 var 时,它可以工作:

$prnp = $ndprofileASz2tnrap_portrestrictions->addChild('portRestriction');

但是当我尝试使用多个变量时,会出现错误:

$asversion = 'z2tnrap';
$nppr = '$ndprofileAS'.$asversion.'_portrestrictions';
$prnp = $nppr->addChild('portRestriction');

如果我“回显”$nppr var,我会得到正确的 var,但 addChild 函数会导致错误消息:“致命错误:在非对象上调用成员函数 addChild()”。

感谢您的帮助。

【问题讨论】:

    标签: php xml simplexml addchild


    【解决方案1】:

    $nppr 那时将只是一个字符串。它不再是一个 simplexml 对象。同样,您的语法不正确:

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

    单引号字符串中的变量不会被插值。您正在将文字 $、文字 n、文字 d 等插入字符串,而不是 $ndprofileAS 变量的值。

    【讨论】:

    • 谢谢,那么,有没有办法将此变量解释为 Simplexml 对象(同时保持多个变量的串联)?
    • 我不知道你的代码实际上想要完成什么,也不知道你是如何达到那个 sn-p 的,所以..不..抱歉,帮不了你。
    • 好吧,我从一个表格中得到了“asversion”,它决定了我要在哪里添加一个子节点。我已经创建了主要节点($ndprofileASz2tnrap_portrestrictions 和其他节点),但是在“如果”条件下列出所有这些节点将需要很长时间(并且非常令人厌恶),所以我将常量部分与特定名称连接起来。有没有办法在 SimpleXML 元素中解析该字符串?
    猜你喜欢
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 2011-03-16
    相关资源
    最近更新 更多