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);
?>
کلاس ParentIterator
Introduction
...
Class synopsis
ParentIterator
extends
RecursiveFilterIterator
implements
RecursiveIterator
,
OuterIterator
,
Traversable
,
Iterator
{
/* Methods */
__construct
( RecursiveIterator $iterator
)
}Table of Contents
- ParentIterator::accept — تعیین قابلیت پدیرفتن
- ParentIterator::__construct — ساخت ParentIterator
- ParentIterator::getChildren — بازگرداندن فرزندان تکرارکننده داخلی شامل شده در ParentIterator
- ParentIterator::hasChildren — بررسی دارا بودن فرزند جز فعلی تکرارکننده داخلی
- ParentIterator::next — انتقال تکرارکننده به جلو
- ParentIterator::rewind — بازگرداندن تکرارکننده به ابتدا
Anonymous ¶
1 year ago
