...私は、実行時に静的メンバとその値を取得したいと思います。何かのようにクラス内の静的変数のリストを取得するにはどうすればよいですか?</p> <pre><code>class MyClass { static var1 = "a"; static var2 = "b"; } </code></pre> <p>ようなクラスでは
Array(
"var1" => "a",
"var2" => "b"
)
PHPでこれを行う方法はありますか?
...私は、実行時に静的メンバとその値を取得したいと思います。何かのようにクラス内の静的変数のリストを取得するにはどうすればよいですか?</p> <pre><code>class MyClass { static var1 = "a"; static var2 = "b"; } </code></pre> <p>ようなクラスでは
Array(
"var1" => "a",
"var2" => "b"
)
PHPでこれを行う方法はありますか?
これを行うには、ReflectionClass::getStaticProperties()
を使用することができます。
$class = new ReflectionClass('MyClass');
$arr = $class->getStaticProperties();
Array ( [var1] => a [var2] => b )
+1のサンプルコードです。 – hakre
http://www.php.net/manual/en/reflectionclass.getstaticproperties.php - など「反射」と呼ばれているすべての静的メソッドとして、クラスとクラスのプロパティについては、この
取得情報を試してみてください。
[リンクのみ回答](https:// meta.stackexchange.com/a/8259)。可能であれば改善してください。 – T30
私はget_class_vars(get_class($ OBJ))を見つけましたが、$ objは_instantiated_オブジェクトではなく、クラス自体である場合にのみ動作すること。クラスに静的メンバーしかいない場合は、そのクラスをインスタンス化する必要がないようにしたいと思います。 – Phillip
@Philip:あなたの質問を編集し、あなたの質問の中にコメントの形で入れた情報をもっとうまく追加することができます;) – hakre
関連:[クラスの文字列名から静的変数を取得できますか?] (http://stackoverflow.com/questions/3354628/from-the-string-name-of-a-class-can-i-get-a-static-variable) – hakre