У меня есть следующая строка кода, тогда как первая нотация делает то, что должна (добавление XML-элемента и его содержимого в DOM), но не в том случае, если я объединяю методы в цепочку.
/**
* @var string $key
* @var DOMNode $value
*/
$newElem = $dom->createElement($key);
$newElem->appendChild($value);
Следующий пример приведет к E_WARNING: DOMNode :: appendChild (): не удалось получить DOMNode. (Чтобы найти эту ошибку / ошибку, мне понадобится около часа.)
$newElem = $dom->createElement($key)->appendChild($value);
Может кто-нибудь объяснить, почему один и тот же код в разных обозначениях приводит к ошибкам?
РЕДАКТИРОВАТЬ: я загрузил тестовый пример , что приводит к ошибке E-WARNING при работе с PHP 5.3.5.