作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我目前有以下 PHP:
$directoryIterator = new RecursiveDirectoryIterator( __DIR__ . '/tests/phpunit/' );
/**
* @var SplFileInfo $fileInfo
*/
foreach ( new RecursiveIteratorIterator( $directoryIterator ) as $fileInfo ) {
if ( substr( $fileInfo->getFilename(), -8 ) === 'Test.php' ) {
$files[] = $fileInfo->getPathname();
}
}
这会创建一个数组,其中包含/tests/phpunit 中以 Test.php 结尾的文件的路径。效果很好。但是现在我也想在/tests/integration 中注册东西。 (/tests 中还有更多内容,所以我不能简单地遍历整个目录。)我可以复制代码,但那很蹩脚。所以现在我想弄清楚如何循环两个 RecursiveDirectoryIterator 实例。这可能以一种理智的方式实现吗?
最佳答案
要遍历迭代器,您可以使用 AppendIterator class.
$directoryIterator = new RecursiveDirectoryIterator( __DIR__ . '/tests/phpunit/' );
$directoryIterator1 = new RecursiveDirectoryIterator( __DIR__ . '/tests/integration/' );
$iterator = new AppendIterator();
$iterator->append(new RecursiveIteratorIterator( $directoryIterator ));
$iterator->append(new RecursiveIteratorIterator( $directoryIterator1 ));
/**
* @var SplFileInfo $fileInfo
*/
foreach ($iterator as $fileInfo) {
if ( substr( $fileInfo->getFilename(), -8 ) === 'Test.php' ) {
$files[] = $fileInfo->getPathname();
}
}
关于php - 遍历多个 RecursiveDirectoryIterator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17079881/
我是一名优秀的程序员,十分优秀!