2013年4月28日日曜日

Iterator

Iteratorとは反復処理を行うための機能のことです。
今回はこの機能を用いてforeachについて学んでみます。

サンプルコード 実行結果
string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
0 => firstelement
string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
1 => secondelement
string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
2 => lastelement
string(16) "myIterator::next"
string(17) "myIterator::valid"
この結果から分かるように、foreachは
  1. 最初の要素に戻る
  2. (現在の要素が有効か)チェックする
  3. 要素を返す
  4. キーを返す
  5. 次へ
といった順序を辿っていきます。

ちなみに、オブジェクトへのforeachがこのようにクラス内メソッドを決められた順序で辿っていくのは
Iteratorインタフェースを実装したクラスの時のみです。

0 件のコメント:

コメントを投稿