我有这个:
- 一个保存类名的字符串变量(
$classname
)
- 一个字符串变量包含属性名称 (
$propertyname
)
我想从该类获取该属性,问题是,该属性是静态的,我不知道该怎么做。
如果该属性不是静态的,则它将是:
$classname->$propertyname;
如果该属性是一个方法,我可以使用 call_user_function
call_user_func(array($classname, $propertyname));
但就我而言,我只是迷路了。然而我希望这是可能的。 PHP 拥有数以千计的函数,他最好也有一些相关的东西。也许我错过了什么?
Thanks!
Edit:
- 对于那些有eval() http://php.net/manual/en/function.eval.php解决方案:谢谢,但这是不可能的
- 对于那些有获取_class_vars() http://php.net/manual/en/function.get-class-vars.php解决方案:谢谢,但似乎又回来了“给定类的默认属性”(php.net),是的,我希望该值是可以更改的(尽管它在某些情况下确实对我有帮助)
如果您使用 PHP 5.3.0 或更高版本,则可以使用以下命令:
$classname::$$propertyname;
不幸的是,如果您使用的版本低于 5.3.0,您将无法使用eval() http://php.net/eval (get_class_vars() http://php.net/get-class-vars如果该值是动态的,则不起作用)。
$value = eval($classname.'::$'.$propertyname.';');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)