« オーバーロード
マジックメソッド »

オブジェクトの反復処理

PHP は、たとえば foreach 命令などによる反復処理を可能とするように、 オブジェクトを定義する手段を提供します。 デフォルトで、 全ての アクセス権がある プロパティは、反復処理に使用することができます。

例1 単純なオブジェクトの反復の例

<?php
class MyClass
{
    public $var1 = 'value 1';
    public $var2 = 'value 2';
    public $var3 = 'value 3';

    protected $protected = 'protected var';
    private   $private   = 'private var';

    function iterateVisible() {
       echo "MyClass::iterateVisible:\n";
       foreach ($this as $key => $value) {
           print "$key => $value\n";
       }
    }
}

$class = new MyClass();

foreach($class as $key => $value) {
    print "$key => $value\n";
}
echo "\n";


$class->iterateVisible();

?>

上の例の出力は以下となります。

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 による反復処理は、アクセスできるすべての アクセス権がある プロパティについて行われています。

関連キーワード:
反復   protected   private   foreach   MyClass   iterateVisible   アクセス権   プロパティ   print   オーバーロード   マジック   命令   手段   提供   参考   Generators   Iterator   IteratorAggregate   Iterators
関連する関数・ページ:
imagick.getimageiterations   language.oop5.constants   gmagick.getimageiterations   control-structures.foreach   language.oop5.visibility   spldoublylinkedlist.setiteratormode