PHPにもIteratorがある!?(1回目)
目次
IteratorでDirectoryEntry列挙したい
こんにちは、こたかです。
今日はPHPにもIteratorがある件について、
ディレクトリエントリーを列挙することはただありますが、
毎回、構文の書き方を忘れたあたりで必要になったりします。
そろそろ決着をつけたいと思い、「Iterator」による実装を検討中です。
Iteratorとは
Iteratorとはforeachなどで使用でき、配列やポインターのように連続でデータにアクセスできる仕組みです。
どのように連続させるかはIteratorインターフェイスの実装で変更できます。
ソート機能やシャッフル機能など、重複して返すなど、実装次第でデータの順番を制御できます。
ディレクトリエントリーとは?
HDD(SSD)はフォーマットしてから使用しますが、ファイル名やディレクトリ名は一覧にまとめて管理されます。
この一覧は、ディレクトリ毎にあり、EXTフォーマットやNTFSフォーマットでも例外なく管理されています。
ディレクトリエントリーは保存された順番で残ることが多く、名前順や日付順で取得できるわけではないので、並び替えするにはソートする必要があります。アプリでもローマ字順に並び替える仕様が採用されることが多いです。
Iteratorインターフェイス通りに実装すれば使えるようになる
Iteratorにはインターフェイスがあるので、要求されている機能と決められた関数名で実装すれば、Iteratorとして機能します。
foreachで呼べるようになるはずですが、今日はまだ調査中。
結果はまた次の記事でお伝えしようと思います。
つづきは次回
今日は途中になってしまいましたが、また次の記事でお会いしましょう。