summaryrefslogtreecommitdiff
path: root/ext/spl/tests/array_009a.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/tests/array_009a.phpt')
-rw-r--r--ext/spl/tests/array_009a.phpt37
1 files changed, 37 insertions, 0 deletions
diff --git a/ext/spl/tests/array_009a.phpt b/ext/spl/tests/array_009a.phpt
new file mode 100644
index 0000000..396aa9b
--- /dev/null
+++ b/ext/spl/tests/array_009a.phpt
@@ -0,0 +1,37 @@
+--TEST--
+SPL: ArrayIterator implementing RecursiveIterator
+--FILE--
+<?php
+
+class MyRecursiveArrayIterator extends ArrayIterator implements RecursiveIterator
+{
+ function hasChildren()
+ {
+ return is_array($this->current());
+ }
+
+ function getChildren()
+ {
+ return new MyRecursiveArrayIterator($this->current());
+ }
+}
+
+$array = array(1, 2 => array(21, 22 => array(221, 222), 23 => array(231)), 3);
+
+$dir = new RecursiveIteratorIterator(new MyRecursiveArrayIterator($array), RecursiveIteratorIterator::LEAVES_ONLY);
+
+foreach ($dir as $file) {
+ print "$file\n";
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECT--
+1
+21
+221
+222
+231
+3
+===DONE===