我需要从包含大量文件的目录中过滤掉一些文件。在我的脚本中,这个函数被多次调用。
function getFilteredFiles($criteria) {
static $files = '';
if ($files == '') {
$files = new DirectoryIterator($path);
}
else {
$files->rewind();
}
foreach($files as $file) {
if (! $file->isDot()) {
if (!$file->isDir()) {
//using $criteria
...
}
}
}
...
}
将 DirectoryIterator 放在静态变量中是让 php 只进入文件系统一次以获取文件的方式吗?(= php 是否只在 DirectoryIterator 的 __construct 期间进入文件系统?)