このクラスの静的プロパティにアクセスするには、定数をクラス名として使用する必要があります。つまり、
class a {
public static $name = "Jon";
}
define("CLASSNAME", "a");
echo CLASSNAME::$name;
これは、クラスCLASSNAME
が存在しないというエラーを返します。解決策はありますか?
このクラスの静的プロパティにアクセスするには、定数をクラス名として使用する必要があります。つまり、
class a {
public static $name = "Jon";
}
define("CLASSNAME", "a");
echo CLASSNAME::$name;
これは、クラスCLASSNAME
が存在しないというエラーを返します。解決策はありますか?
リフレクションで可能です:
class a {
public static $name = "Jon";
}
define("CLASSNAME", "a");
$obj = new ReflectionClass(CLASSNAME);
echo $obj->getStaticPropertyValue("name");
それが良いデザインの選択であるかどうかは別の問題です...
PHP の逆参照の完全な混乱を使用します。
$CLASSNAME = 'a';
$a::$name;