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

+1

@ फिलिप: आप अपने प्रश्न को संपादित कर सकते हैं और आपके प्रश्न के अंदर एक टिप्पणी के रूप में आपके द्वारा रखी गई जानकारी को जोड़ सकते हैं;) – hakre

+0

संबंधित: [कक्षा के स्ट्रिंग नाम से, क्या मुझे स्थिर चर मिल सकता है?] (http://stackoverflow.com/questions/3354628/from-the-string-name-of-a-class-can-i-get-a-static-variable) – hakre

उत्तर

27

ऐसा करने के लिए ReflectionClass::getStaticProperties() उपयोग कर सकते हैं:

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

+1। – hakre

2

http://www.php.net/manual/en/reflectionclass.getstaticproperties.php - जैसे सभी स्थैतिक तरीकों "प्रतिबिंब" कहा जाता है के रूप में वर्गों और वर्ग गुणों के बारे में इस

हो रही जानकारी का प्रयास करें।

+0

[लिंक केवल उत्तर] (https: // meta.stackexchange.com/a/8259)। यदि संभव हो तो कृपया सुधार करें। अच्छा उदाहरण कोड के लिए – T30