2010-03-31 20 views
18

द्वारा किसी ऑब्जेक्ट को इंस्टेंट करें I PHP से रूबी में आया था। मैं रूबी में अगली चीज़ कैसे कर सकता हूं? आप एक वर्ग उदाहरण के लिए स्ट्रिंग की तरह है, तोप्रतिबिंब। दिए गए वर्ग का नाम

array_object = "Array".constantize.new 

उत्तर

27

आप ऐसा कर सकते हैं:

arrayObject = Object::const_get('Array').new 
+0

कूल! आपका बहुत बहुत धन्यवाद! – vooD

15

आप निम्न का उपयोग कर सकते हैं अगर आप पर रूबी का उपयोग कर रहे :

a = String 
a.new("Geo") 

आपको एक स्ट्रिंग देगा। वही बात अन्य वर्गों पर लागू होती है (संख्या & पैरामीटर के प्रकार निश्चित रूप से भिन्न होंगे)।

+0

RoR से समाधान की तरह दिखता है। धन्यवाद! – vooD

+3

यह इंगित करने लायक है कि 'स्थिरता' रेल के सक्रिय समर्थन मॉड्यूल द्वारा रुबी में जोड़ा गया एक मूल विस्तार है यानी यह शुद्ध रूबी नहीं है। –

+0

अच्छा बिंदु जॉन, मैंने अपना जवाब अपडेट कर लिया है। –

4

:

$className = 'ArrayObject'; 
$arrayObject = new $className(); 
+1

हालांकि यह सीधे सवाल का जवाब नहीं देता है, यह एक अच्छा मुद्दा है कि कक्षाएं वस्तुएं हैं, इसलिए आप उन्हें किसी भी अन्य वस्तु की तरह स्टोर कर सकते हैं और यह कई मामलों में बेहतर दृष्टिकोण हो सकता है जहां आप एक स्ट्रिंग का उपयोग करने के लिए लुभाना चाहते हैं एक और भाषा में। – Chuck

संबंधित मुद्दे