6

このクラスの静的プロパティにアクセスするには、定数をクラス名として使用する必要があります。つまり、

class a {

    public static $name = "Jon";

}

define("CLASSNAME", "a");

echo CLASSNAME::$name;

これは、クラスCLASSNAMEが存在しないというエラーを返します。解決策はありますか?

4

3 に答える 3

5

リフレクションで可能です:

class a {

    public static $name = "Jon";

}

define("CLASSNAME", "a");

$obj = new ReflectionClass(CLASSNAME);
echo $obj->getStaticPropertyValue("name");

それが良いデザインの選択であるかどうかは別の問題です...

于 2013-02-02T13:14:30.907 に答える
0

PHP の逆参照の完全な混乱を使用します。

$CLASSNAME = 'a';
$a::$name;
于 2013-02-02T13:09:35.563 に答える