Предостережение
Объекты классов, которые регистрируют для узлов этим методом, хранятся временно —
объекты уничтожаются, когда в PHP-коде не остаётся ссылок на эти объекты, и воссоздаются
при повторном извлечении. Поэтому значения пользовательских свойств
теряются после воссоздания объекта документа.
<?php
class MyDOMElement extends DOMElement
{
public $myProp = 'значение по умолчанию';
}
$doc = new DOMDocument();
$doc->registerNodeClass('DOMElement', 'MyDOMElement');
$node = $doc->createElement('a');
$node->myProp = 'изменённое значение';
$doc->appendChild($node);
echo $doc->childNodes[0]->myProp, PHP_EOL;
unset($node);
echo $doc->childNodes[0]->myProp, PHP_EOL;
?>
Результат выполнения приведённого примера:
изменённое значение
значение по умолчанию