PHPにもIteratorがある!?(1回目)

IteratorでDirectoryEntry列挙したい

こんにちは、こたかです。

今日はPHPにもIteratorがある件について、
ディレクトリエントリーを列挙することはただありますが、
毎回、構文の書き方を忘れたあたりで必要になったりします。

そろそろ決着をつけたいと思い、「Iterator」による実装を検討中です。

Iteratorとは

Iteratorとはforeachなどで使用でき、配列やポインターのように連続でデータにアクセスできる仕組みです。
どのように連続させるかはIteratorインターフェイスの実装で変更できます。
ソート機能やシャッフル機能など、重複して返すなど、実装次第でデータの順番を制御できます。

ディレクトリエントリーとは?

HDD(SSD)はフォーマットしてから使用しますが、ファイル名やディレクトリ名は一覧にまとめて管理されます。
この一覧は、ディレクトリ毎にあり、EXTフォーマットやNTFSフォーマットでも例外なく管理されています。

ディレクトリエントリーは保存された順番で残ることが多く、名前順や日付順で取得できるわけではないので、並び替えするにはソートする必要があります。アプリでもローマ字順に並び替える仕様が採用されることが多いです。

Iteratorインターフェイス通りに実装すれば使えるようになる

Iteratorにはインターフェイスがあるので、要求されている機能と決められた関数名で実装すれば、Iteratorとして機能します。
foreachで呼べるようになるはずですが、今日はまだ調査中。
結果はまた次の記事でお伝えしようと思います。

つづきは次回

今日は途中になってしまいましたが、また次の記事でお会いしましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です