大量のファイルを含むディレクトリからいくつかのファイルを除外する必要があります。私のスクリプトでは、この関数が何度も呼び出されます。
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 中にのみファイルシステムにアクセスしますか?)