2009-05-14 15 views
18

PHPクラスの(公開または非公開の)プロパティを反復処理するにはどうすればよいですか?phpクラスのプロパティを反復処理する

+0

あなたも、型キャストをすることができ、オブジェクト:;: ($小道具=> $ valのようget_object_vars($ this)を) foreachの 'のvar_dump((配列)$オブジェクト)' – Xeoncross

答えて

27

tl; dr;

// iterate public vars of class instance $class 
foreach (get_object_vars($class) as $prop) { 
    echo "$prop\n"; 
} 

を説明:

http://nz.php.net/get_object_vars

class foo { 
    private $a; 
    public $b = 1; 
    public $c; 
    private $d; 
    static $e; 

    public function test() { 
     var_dump(get_object_vars($this)); 
    } 
} 

$test = new foo; 

var_dump(get_object_vars($test)); 

$test->test(); 

?> 

array(2) { 
    ["b"]=> int(1) 
    ["c"]=> NULL 
} 

array(4) { 
    ["a"]=> NULL 
    ["b"]=> int(1) 
    ["c"]=> NULL 
    ["d"]=> NULL 
} 

を意味してください?

+0

ので、私は何ができますか? –

+2

はい、public varsだけが表示されますが、プライベートなものはget_object_varsの呼び出し元がクラスの中にあるときだけ返されます。 – Louis

+0

うん、ルーは言ったように、get\_object\_varsが必要な機能です。 –

関連する問題