| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
オブジェクトの反復処理PHP 5 は、たとえば foreach 命令などによる反復処理を可能とするよう オブジェクトを定義する手段を提供します。 デフォルトで、 全ての アクセス権限がある プロパティは、反復処理に使用することができます。 例1 Simple Object Iteration
<?php 上の例の出力は以下となります。 var1 => value 1 var2 => value 2 var3 => value 3 MyClass::iterateVisible: var1 => value 1 var2 => value 2 var3 => value 3 protected => protected var private => private var 出力からわかるように、 foreach による反復処理がすべての アクセス権がある プロパティについて行われています。 さらに、Iterator インターフェイス も実装できます。 これを実装すれば、オブジェクトの反復処理の方法や処理中に取得できる値を決めることができます。 例2 Iteratorを実装するオブジェクトの反復処理
<?php 上の例の出力は以下となります。 rewinding valid: 1 current: 1 key: 0 0: 1 next: 2 valid: 1 current: 2 key: 1 1: 2 next: 3 valid: 1 current: 3 key: 2 2: 3 next: valid: Iterator のすべてのメソッドを実装するかわりに、 IteratorAggregate インターフェイス を使うこともできます。 IteratorAggregate で実装を要するメソッドは IteratorAggregate::getIterator() だけで、 このメソッドは Iterator を実装したクラスのインスタンスを返す必要があります。 例3 IteratorAggregateを実装するオブジェクトの反復処理
<?php 上の例の出力は以下となります。 rewinding current: value 1 valid: 1 current: value 1 key: 0 key/value: [0 -> value 1] next: value 2 current: value 2 valid: 1 current: value 2 key: 1 key/value: [1 -> value 2] next: value 3 current: value 3 valid: 1 current: value 3 key: 2 key/value: [2 -> value 3] next: current: valid:
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「オブジェクトの反復処理」をGoogle検索
|