ParentIterator クラス
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
はじめに
これは FilterIterator を継承したクラスで、 RecursiveIteratorIterator を使った再帰的な反復処理をできるようにします。 ただし、子を持つ要素しか表示しません。
クラス概要
/* メソッド */
/* 継承したメソッド */
}目次
- ParentIterator::accept — 受け入れ可能かどうかを調べる
- ParentIterator::__construct — ParentIterator を作成する
- ParentIterator::getChildren — ParentIterator に含まれる内部イテレータの子を返す
- ParentIterator::hasChildren — 内部イテレータの現在の要素が子を持つかどうかをチェックする
- ParentIterator::next — イテレータを前に移動する
- ParentIterator::rewind — イテレータを巻き戻す
+add a note
User Contributed Notes 2 notes
dn dot permyakov at gmail dot com ¶
5 years ago
Easy example for understanding:
<?php
$iterator = new ParentIterator(
new RecursiveArrayIterator(
array(array(1, 2, 3), 'A', 'B', 'C')
)
);
foreach ($iterator as $recursive) {
foreach ($recursive as $value) {
echo $value . PHP_EOL;
}
}
?>
1
2
3
Anonymous ¶
13 years ago
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);
?>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google