3

我有以下代码行,而第一个符号做了它应该做的(将 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);

谁能解释为什么不同符号的相同代码会导致错误?

编辑:我上传了一个 test-case,在使用 PHP 5.3.5 运行时会导致 E-WARNING 错误。

4

2 回答 2

1

由于 PHP 的语法,这里不可能有区别。

$b = $a; $b->c();是一样的$a->c();

您的代码还有其他问题。

于 2011-07-04T14:02:43.150 回答
-1

这个怎么样?

$newElem = ($dom->createElement($key))->appendChild($value);

请记住,在这种情况下,$newElem 是添加的节点,而不是父元素。

于 2011-07-04T13:55:50.070 回答