2012-01-06 49 views
13

有了这样如何获得一个类中的静态变量列表?

class MyClass { 
    static var1 = "a"; 
    static var2 = "b"; 
} 

...我想找回在运行时的静态成员和他们的价值观一类;像

Array(
    "var1" => "a", 
    "var2" => "b" 
) 

有什么办法可以在PHP中做到这一点?

+0

我发现get_class_vars(get_class($ OBJ)),但仅当$ obj是一个_instantiated_对象,而不是类本身的工作原理。如果我的班级只有静态成员,我想不必实例化班级。 – Phillip 2012-01-06 20:26:45

+1

@Philip:你可以编辑你的问题,并以你的问题的形式添加你所发布的信息,更好地在你的问题中;) – hakre 2012-01-06 20:30:53

+0

相关:[从字符串的名字,我可以得到一个静态变量?] (http://stackoverflow.com/questions/3354628/from-the-string-name-of-a-class-can-i-get-a-static-variable) – hakre 2012-01-06 20:35:11

回答

27

您可以使用ReflectionClass::getStaticProperties()做到这一点:

$class = new ReflectionClass('MyClass'); 
$arr = $class->getStaticProperties(); 
 
Array 
(
    [var1] => a 
    [var2] => b 
) 
+1

对于漂亮的示例代码+1。 – hakre 2012-01-06 20:31:38

相关问题