ParentIterator is just a RecursiveFilterIterator whos accept() method calls the RecursiveFilterIterator->hasChildren() method to filter itself.
Basically, it filters out leaf nodes. For example
This would yield all files and directories
<?php
$rdi = new RecursiveDirectoryIterator(__DIR__);
$iter = new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::CHILD_FIRST);
?>
wrapping that in a ParentIterator would filter it down to just directories
<?php
$rdi = new RecursiveDirectoryIterator(__DIR__);
$iter = new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::CHILD_FIRST);
$dirsOnly = new ParentIterator($iter);
?>
A classe ParentIterator
Introdução
...
Sinopse da classe
ParentIterator
extends
RecursiveFilterIterator
implements
RecursiveIterator
,
OuterIterator
,
Traversable
,
Iterator
{
/* Métodos */
}Índice
- ParentIterator::accept — Determines acceptability
- ParentIterator::__construct — Constructs a ParentIterator
- ParentIterator::getChildren — Retorna os filhos do iterador interno de um ParentIterator
- ParentIterator::hasChildren — Verifica se o elemento atual do iterador interno tem ou não filhos
- ParentIterator::next — Avança o iterador
- ParentIterator::rewind — Recomeça o iterador
Anonymous
19-Dec-2011 12:55
