PHP DOM, метод цепочки - PullRequest
       10

PHP DOM, метод цепочки

3 голосов
/ 04 июля 2011

У меня есть следующая строка кода, тогда как первая нотация делает то, что должна (добавление 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.

Ответы [ 2 ]

1 голос
/ 04 июля 2011

Невозможно из-за синтаксиса PHP из-за разницы здесь.

$b = $a; $b->c(); совпадает с $a->c();.

Что-то не так с вашим кодом.

0 голосов
/ 04 июля 2011

Как насчет этого?

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

помните, что в этом случае $ newElem является добавленным узлом, а не родительским элементом.

...