--TEST--
SPL: Iterator using getInnerIterator
--FILE--
<?php

class RecursiceArrayIterator extends ArrayIterator implements RecursiveIterator
{
    function 
hasChildren()
    {
        return 
is_array($this->current());
    }
    
    function 
getChildren()
    {
        return new 
RecursiceArrayIterator($this->current());
    }
}

class 
CrashIterator extends FilterIterator implements RecursiveIterator
{
    function 
accept()
    {
        return 
true;
    }
    
    function 
hasChildren()
    {
        return 
$this->getInnerIterator()->hasChildren();
    }
    
    function 
getChildren()
    {
        return new 
RecursiceArrayIterator($this->getInnerIterator()->current());
    }
}

$array = array(1=> array(2122 => array(221222), 23 => array(231)), 3);

$dir = new RecursiveIteratorIterator(new CrashIterator(new RecursiceArrayIterator($array)), RecursiveIteratorIterator::LEAVES_ONLY);

foreach (
$dir as $file) {
    print 
"$file\n";
}

?>
===DONE===
<?php exit(0); ?>
--EXPECT--
1
21
221
222
231
3
===DONE===