2012-01-06 105 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

相關問題