標準 PHP ライブラリ (SPL) の FilterIterator クラスを使用するスクリプトを作成しましたが、PHP 5.x バージョン間で異なる動作が得られます:( ここでは、accept() 関数:
public function accept()
{
$current = $this->current();
print_r($current);
return true;
}
PHP 5.3.1 の出力は次のとおりです。
DirectoryIterator Object
(
[pathName:SplFileInfo:private] => /Users/alex/Sites/dev/php/fscms/content/.
[fileName:SplFileInfo:private] => .
[glob:DirectoryIterator:private] =>
[subPathName:RecursiveDirectoryIterator:private] =>
)
DirectoryIterator Object
(
[pathName:SplFileInfo:private] => /Users/alex/Sites/dev/php/fscms/content/..
[fileName:SplFileInfo:private] => ..
[glob:DirectoryIterator:private] =>
[subPathName:RecursiveDirectoryIterator:private] =>
)
DirectoryIterator Object
(
[pathName:SplFileInfo:private] => /Users/alex/Sites/dev/php/fscms/content/.DS_Store
[fileName:SplFileInfo:private] => .DS_Store
[glob:DirectoryIterator:private] =>
[subPathName:RecursiveDirectoryIterator:private] =>
)
そして、PHP 5.2.5で同じコードを使用して得られるものは次のとおりです
DirectoryIterator Object
(
)
DirectoryIterator Object
(
)
DirectoryIterator Object
(
)
後者には、すべてのファイルに対するパーミッション 755 があります。どうしたの?