1--TEST-- 2Test DOMTokenList iterator invalidation after modification 3--EXTENSIONS-- 4dom 5--FILE-- 6<?php 7 8$dom = DOM\XMLDocument::createFromString('<root class="A B C D"/>'); 9$list = $dom->documentElement->classList; 10 11 12echo "---\n"; 13 14$counter = 0; 15foreach ($list as $key => $token) { 16 var_dump($key, $token); 17 if (++$counter === 2) { 18 $list->value = 'E F G'; 19 } 20} 21 22echo "---\n"; 23 24$iterator = $list->getIterator(); 25$iterator->next(); 26$list->value = 'X Y Z'; 27var_dump($iterator->key()); 28var_dump($iterator->current()); 29$iterator->rewind(); 30var_dump($iterator->key()); 31var_dump($iterator->current()); 32$list->value = ''; 33var_dump($iterator->key()); 34var_dump($iterator->current()); 35var_dump($iterator->valid()); 36 37?> 38--EXPECT-- 39--- 40int(0) 41string(1) "A" 42int(1) 43string(1) "B" 44int(2) 45string(1) "G" 46--- 47int(1) 48string(1) "Y" 49int(0) 50string(1) "X" 51int(0) 52NULL 53bool(false) 54