PHP5.3以降で一番変わった点は、SPLは無効にすることができない拡張子になったということですね。5.3の変更点に関して記載があった資料を下記に載せておきます。
「APLを無効にすることができない標準の拡張子のリストに追加しました。
そのためDirectoryIterator または SPLDoublyLinkedListはPHP5.3についてきた、クラスの固定されたスイートです。
ファイル/ディレクトリを繰り返したり、使われているファイルシステムに対してビヘイビアが匿名のものではないときに関しては、DirectoryIteratorはあまりよく作動しないという議論もありました。
ファイルシステム(Windows NTFS/ *nix EXTx)に頼っているため、イテレータが返す結果は全部違います。*nixの環境はデフォルトのものに対してドットまたはダブルドット(. and ..)を有効のディレクトリとして返します。これらのドットのディレクトリはisDot()メソッドを使ってループでフィルタすることが可能です」
$it = new DirectoryIterator(dirname(FILE));
foreach ($it as $fileinfo) {
if (!$fileinfo->isDot())
var_dump($fileinfo->getFilename());
}
そのため、FilesystemIteratorはPHP5.3で新しい親のクラスになりました。リリースの前これはDirectoryIterator (FilesystemIteratorはデフォルトでビヘイビアを変換することができるようにDirectoryIteratorを延長しています)でした。 ビヘイビア、または生成されたFilesystemIteratorの結果は、オーバヘッドのループを使うことなく他の違うファイルシステムと変換することが可能なものと同じようです。
$it = new FilesystemIterator(dirname(FILE));
foreach ($it as $fileinfo) {
echo $fileinfo->getFilename() . "\n";
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。