函数名:RecursiveFilterIterator::hasChildren()
适用版本:PHP 5 >= 5.1.0, PHP 7
用法:public RecursiveFilterIterator::hasChildren ( void ) : bool
函数描述:检查当前迭代器节点是否有子节点。
参数:无
返回值:如果当前迭代器节点有子节点,则返回true,否则返回false。
示例:
// 创建一个递归过滤迭代器
class CustomFilterIterator extends RecursiveFilterIterator {
public function accept() {
// 这里我们只接受文件夹类型的节点
return $this->current()->isDir();
}
}
// 创建一个目录迭代器
$iterator = new RecursiveDirectoryIterator('/path/to/directory');
// 使用自定义过滤迭代器来过滤目录迭代器
$filterIterator = new CustomFilterIterator($iterator);
// 检查当前节点是否有子节点
if ($filterIterator->hasChildren()) {
// 遍历子节点
foreach ($filterIterator->getChildren() as $child) {
echo $child->getPathname() . PHP_EOL;
}
}
在上面的示例中,我们创建了一个自定义的递归过滤迭代器CustomFilterIterator
,它只接受文件夹类型的节点。然后,我们创建了一个目录迭代器RecursiveDirectoryIterator
来遍历指定目录。接下来,我们将目录迭代器传递给自定义过滤迭代器,并使用hasChildren()
函数来检查当前节点是否有子节点。如果有子节点,我们使用getChildren()
函数来获取子节点,并遍历输出子节点的路径名。