У меня есть следующая строка кода, тогда как первая нотация делает то, что должна (добавление 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.
$key
и$value
? - person Yoshi   schedule 04.07.2011DOMCharacterData
илиDOMText
, в зависимости от ключа (например,$dom->createTextNode('Test-Marker')
). Я протестировал программу несколько раз, не меняя никаких других частей, кроме той, что вставлена выше. Я использую PHP 5.3.5 на Ubuntu 11.04. - person feeela   schedule 04.07.2011