]> granicus.if.org Git - php/commitdiff
- Add new test
authorMarcus Boerger <helly@php.net>
Thu, 27 Jan 2005 00:22:28 +0000 (00:22 +0000)
committerMarcus Boerger <helly@php.net>
Thu, 27 Jan 2005 00:22:28 +0000 (00:22 +0000)
ext/spl/tests/array_015.phpt [new file with mode: 0755]

diff --git a/ext/spl/tests/array_015.phpt b/ext/spl/tests/array_015.phpt
new file mode 100755 (executable)
index 0000000..f278632
--- /dev/null
@@ -0,0 +1,85 @@
+--TEST--
+ArrayIterator::next() with internal arrays
+--FILE--
+<?php
+
+$ar = new ArrayObject();
+
+$ar[0] = 1;
+$ar[1] = 2;
+$ar[2] = 3;
+$ar[3] = 4;
+$ar[4] = 5;
+
+var_dump($ar);
+
+$it = $ar->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===
+<?php exit(0); ?>
+--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===