2012-01-06 15 views
13

...私は、実行時に静的メンバとその値を取得したいと思います。何かのようにクラス内の静的変数のリストを取得するにはどうすればよいですか?</p> <pre><code>class MyClass { static var1 = "a"; static var2 = "b"; } </code></pre> <p>ようなクラスでは

Array(
    "var1" => "a", 
    "var2" => "b" 
) 

PHPでこれを行う方法はありますか?

+0

私はget_class_vars(get_class($ OBJ))を見つけましたが、$ objは_instantiated_オブジェクトではなく、クラス自体である場合にのみ動作すること。クラスに静的メンバーしかいない場合は、そのクラスをインスタンス化する必要がないようにしたいと思います。 – Phillip

+1

@Philip:あなたの質問を編集し、あなたの質問の中にコメントの形で入れた情報をもっとうまく追加することができます;) – hakre

+0

関連:[クラスの文字列名から静的変数を取得できますか?] (http://stackoverflow.com/questions/3354628/from-the-string-name-of-a-class-can-i-get-a-static-variable) – hakre

答えて

27

これを行うには、ReflectionClass::getStaticProperties()を使用することができます。

$class = new ReflectionClass('MyClass'); 
$arr = $class->getStaticProperties(); 
 
Array 
(
    [var1] => a 
    [var2] => b 
) 
+1

+1のサンプルコードです。 – hakre

関連する問題

 関連する問題