diff options
Diffstat (limited to 'ext/spl/tests/array_009a.phpt')
-rw-r--r-- | ext/spl/tests/array_009a.phpt | 37 |
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=== |