2012-01-06 7 views
13

Con una classe comeCome posso ottenere un elenco di variabili statiche in una classe?

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

... mi piacerebbe recuperare i membri statici ei loro valori in fase di esecuzione; qualcosa come

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

C'è un modo per farlo in PHP?

+0

ho trovato get_class_vars (get_class ($ obj)), ma che funziona solo se $ obj è un oggetto _instantiated_, non la classe stessa. Se avrò solo membri statici nella mia classe, mi piacerebbe evitare di dover istanziare la classe. – Phillip

+1

@Philip: è possibile modificare la tua domanda e aggiungere le informazioni che hai inserito in forma di un commento molto più ben all'interno della vostra domanda;) – hakre

+0

correlati: [? Dal nome di stringa di una classe, è possibile ottenere una variabile statica] (http://stackoverflow.com/questions/3354628/from-the-string-name-of-a-class-can-i-get-a-static-variable) – hakre

risposta

27

È possibile utilizzare ReflectionClass::getStaticProperties() per fare questo:

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

+1 per il bel codice di esempio. – hakre

Problemi correlati