1--TEST-- 2DOMDocument::getElementsByTagName() liveness affected by writing properties 3--EXTENSIONS-- 4dom 5--FILE-- 6<?php 7 8$xml = '<root xmlns:ns1="foo" xmlns:ns2="bar"><ns1:a/></root>'; 9$fields = ['nodeValue', 'textContent']; 10 11foreach ($fields as $field) { 12 $doc = new DOMDocument; 13 $doc->loadXML($xml); 14 $list = $doc->getElementsByTagName('a'); 15 var_dump($list->item(0) === NULL); 16 $doc->documentElement->{$field} = 'new_content'; 17 var_dump($list->item(0) === NULL); 18 print $doc->saveXML(); 19} 20 21// Shouldn't be affected 22$doc = new DOMDocument; 23$doc->loadXML($xml); 24$list = $doc->getElementsByTagNameNS('foo', 'a'); 25var_dump($list->item(0) === NULL); 26$doc->documentElement->firstChild->prefix = 'ns2'; 27var_dump($list->item(0) === NULL); 28print $doc->saveXML(); 29 30?> 31--EXPECT-- 32bool(false) 33bool(true) 34<?xml version="1.0"?> 35<root xmlns:ns1="foo" xmlns:ns2="bar">new_content</root> 36bool(false) 37bool(true) 38<?xml version="1.0"?> 39<root xmlns:ns1="foo" xmlns:ns2="bar">new_content</root> 40bool(false) 41bool(false) 42<?xml version="1.0"?> 43<root xmlns:ns1="foo" xmlns:ns2="bar"><ns2:a xmlns:ns2="foo"/></root> 44