User Contributed Notes 1 note

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);?>