ParentIterator 类

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

介绍

此扩展的 FilterIterator 允许使用 RecursiveIteratorIterator 进行递归迭代,该迭代只显示具有子元素的元素。

目录

添加备注

用户贡献的备注 2 备注

dn dot permyakov at gmail dot com
5 年前
易于理解的示例
<?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
匿名
12 年前
ParentIterator 只是一个 RecursiveFilterIterator,其 accept() 方法调用 RecursiveFilterIterator->hasChildren() 方法来自我过滤。

基本上,它过滤掉叶节点。例如

这将产生所有文件和目录
<?php
$rdi
= new RecursiveDirectoryIterator(__DIR__);
$iter = new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::CHILD_FIRST);
?>

将它包装在 ParentIterator 中将过滤掉它,只留下目录
<?php
$rdi
= new RecursiveDirectoryIterator(__DIR__);
$iter = new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::CHILD_FIRST);
$dirsOnly = new ParentIterator($iter);
?>
To Top