summaryrefslogtreecommitdiff
path: root/ext/spl/tests/array_019.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/tests/array_019.phpt')
-rwxr-xr-xext/spl/tests/array_019.phpt32
1 files changed, 32 insertions, 0 deletions
diff --git a/ext/spl/tests/array_019.phpt b/ext/spl/tests/array_019.phpt
new file mode 100755
index 0000000000..1416d8407d
--- /dev/null
+++ b/ext/spl/tests/array_019.phpt
@@ -0,0 +1,32 @@
+--TEST--
+SPL: ArrayIterator and foreach by reference
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+$ar = new ArrayObject(array(1)); foreach($ar as &$v) var_dump($v);
+$ar = new ArrayIterator(array(2)); foreach($ar as &$v) var_dump($v);
+$ar = new RecursiveArrayIterator(array(3)); foreach($ar as &$v) var_dump($v);
+
+class ArrayIteratorEx extends ArrayIterator
+{
+ function current()
+ {
+ return ArrayIterator::current();
+ }
+}
+
+$ar = new ArrayIteratorEx(array(4)); foreach($ar as $v) var_dump($v);
+$ar = new ArrayIteratorEx(array(5)); foreach($ar as &$v) var_dump($v);
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+int(1)
+int(2)
+int(3)
+int(4)
+int(5)
+===DONE===