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