--TEST-- SPL: ArrayIterator::next() with internal arrays --SKIPIF-- --FILE-- getIterator(); $ar->offsetUnset($it->key()); $it->next(); var_dump($it->current()); var_dump($ar); foreach($it as $k => $v) { $ar->offsetUnset($k+1); echo "$k=>$v\n"; } var_dump($ar); foreach($it as $k => $v) { $ar->offsetUnset($k); echo "$k=>$v\n"; } var_dump($ar); ?> ===DONE=== --EXPECTF-- object(ArrayObject)#%d (5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) } Notice: ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in %sarray_015.php on line %d int(2) object(ArrayObject)#%d (4) { [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) } 1=>2 3=>4 object(ArrayObject)#%d (2) { [1]=> int(2) [3]=> int(4) } 1=>2 Notice: main(): ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in %sarray_015.php on line %d 3=>4 Notice: main(): ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in %sarray_015.php on line %d object(ArrayObject)#%d (0) { } ===DONE===