【发布时间】:2011-07-04 13:35:03
【问题描述】:
我有以下代码行,而第一个表示法做了它应该做的(将 XML 元素及其内容添加到 DOM),但如果我链接方法,则不是。
/**
* @var string $key
* @var DOMNode $value
*/
$newElem = $dom->createElement($key);
$newElem->appendChild($value);
以下示例将导致 E_WARNING: DOMNode::appendChild(): Couldn't fetch DOMNode。 (我花了大约一个小时才找到那个错误/错误。)
$newElem = $dom->createElement($key)->appendChild($value);
谁能解释为什么不同符号的相同代码会导致错误?
编辑:我有 uploaded a test-case,在使用 PHP 5.3.5 运行时会导致 E-WARNING 错误。
【问题讨论】:
-
我无法重现您的错误。你能显示
$key和$value中的内容吗? -
这里一样,按预期工作,现在显示错误;你使用的是哪个 PHP 版本?
-
它在循环中执行,key总是一个字符串,命名新元素(例如'name')。值是
DOMCharacterData或DOMText,取决于键(例如$dom->createTextNode('Test-Marker'))。我已经对该程序进行了多次测试,但没有更改上面粘贴的任何其他部分。我在 Ubuntu 11.04 上使用 PHP 5.3.5
标签: php method-chaining