PHP Conference Japan 2024

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