SPL イテレータ

教科書「プログラミングPHP 第2版」

オライリーから出版されているプログラミングPHP 第2版を教科書に出題されます。

イテレータ

イテレータは、反復作業を行うのに便利なメソッドが実装されたクラス/インタフェースです。

iterator インタフェースが用意されています。さらに、iterator インタフェースを実装するクラスが多数用意されています。
AppendIterator
ArrayIterator
CachingIterator
CallbackFilterIterator
DirectoryIterator
EmptyIterator
FilesystemIterator
FilterIterator
GlobIterator
InfiniteIterator
IteratorIterator
LimitIterator
MultipleIterator
NoRewindIterator
ParentIterator
RecursiveArrayIterator
RecursiveCachingIterator
RecursiveCallbackFilterIterator
RecursiveDirectoryIterator
RecursiveFilterIterator
RecursiveIteratorIterator
RecursiveRegexIterator
RecursiveTreeIterator
RegexIterator
SimpleXMLIterator

イテレータの利用例

DirectoryIterator を取り上げてみます。

オブジェクトの作成

new DirectoryIterator(ディレクトリ名) で作成します。

$dirdata = new DirectoryIterator('.');

内部ポインタの移動

内部ポインタを移動させるメソッドが用意されています。

$dirdata->next(); // 次のアイテムに移動
$dirdata->rewind(); // 最初に戻る

メソッドを実行する

DirectoryIterator クラスで定義されているメソッドを実行できます。いくつか例を示します。

$dirdata->getFileName(); // ファイル名を取得する
$dirdata->getSize(); // ファイルサイズを取得する
$dirdata->getATime(); // 最終アクセス時刻(UNIX タイムスタンプ)を取得する
$dirdata->getMTime(); // 最終更新時刻(UNIX タイムスタンプ)を取得する

この他にもあります。class.directoryiterator をごらんください。

Copyright (C) 2003-2012. PHP で WEB 作成 All rights reserved.
  • よくある質問