上級PHPコラム『Standard PHP Library(SPL) ArrayIterator&ArrayObjectクラス編』(PHP上級試験対策)
PHP技術者認定機構の吉政でございます。
PHP技術者認定機構の認定スクールであるヒューマンリソシアが
私が企画した、古庄親方のPHPコラム『Standard PHP Library(SPL) ArrayIterator&ArrayObjectクラス編』を公開しています。
過去数回にわたって、古庄親方の上級PHPインターフェースのテクニックを紹介してきました。
毎回、しっかり読まれた方は、腕が上がったのではないでしょうか?是非読まれた後は、実際に組んでみてください。実践が一番大事です。今号も宜しくお願いいたします!
###
長々と講釈をたれてきましたIteratorもそろそろここで一段落です。今しばらくおつきあいをいただければと思いますのでよろしくお願いいたします。
さて。11回から14回までの実に4回を使って
foreachでクラスインスタンスを扱う事ができること
Iteratorインターフェイスによって「どのデータをどんな順番で扱うか」を実装出来る事
IteratorAggregateインターフェイスによって「データの塊」と「反復処理」を別々のクラスに分けて実装出来る事
を学んできました。
いやまぁ出来るってのは確かに有難いのですが現実問題として「これを毎回実装するか?」と問われると色々と躊躇が入ります。
で、そこで躊躇せずに済むのはPHPの有難いところです。
具体的には、14章で作ったdataArrayクラスとmyIteratorクラス、あれをもうちょっとしっかりとがっつりと便利にこってりと実装したクラスがすでに存在します。
データの塊を扱える「PHPですでに提供されている」dataArrayクラスをもっと便利にしたクラスをArrayObjectクラスと言います。
また同様に、反復処理を扱える「PHPですでに提供されている」myIteratorクラスをもっと便利にしたクラスをArrayIteratorクラスと言います。
ArrayObjectクラスはコラム10回目の最後で少しだけ出てきましたね。ここで、話がつながります(笑
では。14章のコードと等価なものを、ArrayObjectクラス&ArrayIteratorクラスで実装してみましょう。
(この続きは以下のコラム本文をご覧ください)
http://resocia.jp/column/311/