Я понимаю, что DOMNodeList предназначен для особого типа «живого» списка ссылок, доступного только для чтения, но из любопытства, как он создается другими классами? Например, как функции DOMNode «getBy *» создают DOMNodeList?
//for example NOT with array of nodes
$doc=new DOMDocument();
$doc->loadHTML("<div></div><div></div>");
$list=new DOMNodeList([$doc->getElementsByTagName('div')->item(0)]);
echo $list->length;//doesn't work; empty; prints 0
Задача ещё не решена.
Других решений пока нет …