OTA*_*TAR 6 php language-construct
我需要使用常量作为类名来访问此类静态属性,即
class a {
public static $name = "Jon";
}
define("CLASSNAME", "a");
echo CLASSNAME::$name;
Run Code Online (Sandbox Code Playgroud)
这会返回错误,该类CLASSNAME不存在.有一些解决方案吗?
通过反射是可能的:
class a {
public static $name = "Jon";
}
define("CLASSNAME", "a");
$obj = new ReflectionClass(CLASSNAME);
echo $obj->getStaticPropertyValue("name");
Run Code Online (Sandbox Code Playgroud)
如果这是一个好的设计选择,则是另一个问题。