क्या कक्षा में किसी वर्ग के नाम से किसी ऑब्जेक्ट को तत्काल करने के लिए PHP में संभव है, यदि वर्ग का नाम किसी स्ट्रिंग में संग्रहीत है?क्या PHP किसी ऑब्जेक्ट को कक्षा के नाम से स्ट्रिंग के रूप में चालू कर सकता है?
उत्तर
हाँ, निश्चित रूप से।
$className = 'MyClass';
$object = new $className;
<?php
$type = 'cc';
$obj = new $type; // outputs "hi!"
class cc {
function __construct() {
echo 'hi!';
}
}
?>
भी स्थैतिक:
$class = 'foo';
return $class::getId();
यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/16691553) – Blackbam
@ ब्लैकबैम प्रासंगिक संबंधित पूरक उत्तर। अगर यह उपयोगी है तो कृपया केवल टिप्पणी करें। –
सच यह मूल रूप से काम करता है वैसे भी आपके उत्तर का कुछ स्पष्टीकरण अच्छा होगा। सवाल यह था कि "क्या PHP किसी ऑब्जेक्ट को चालू कर सकता है" लेकिन स्थिर सदस्य फ़ंक्शन तक पहुंच ऑब्जेक्ट एक्सेस नहीं है। – Blackbam
आप इस तरह के एक डेटाबेस के रूप में एक भंडारण में अपने classname (रों)/तरीकों भंडारण के द्वारा कुछ गतिशील मंगलाचरण कर सकते हैं । यह मानते हुए कि वर्ग त्रुटियों के लिए लचीला है।
sample table my_table
classNameCol | methodNameCol | dynamic_sql
class1 | method1 | 'select * tablex where .... '
class1 | method2 | 'select * complex_query where .... '
class2 | method1 | empty use default implementation
आदि .. फिर अपने कोड तार वर्गों और तरीकों नाम के लिए डेटाबेस से वापस लौटे का उपयोग करने में। आप अपनी कक्षाओं के लिए एसक्यूएल प्रश्नों को भी स्टोर कर सकते हैं, अगर आपकी कल्पना तक स्वचालन का स्तर हो।
$myRecordSet = $wpdb->get_results('select * from my my_table')
if ($myRecordSet) {
foreach ($myRecordSet as $currentRecord) {
$obj = new $currentRecord->classNameCol;
$obj->sql_txt = $currentRecord->dynamic_sql;
$obj->{currentRecord->methodNameCol}();
}
}
मैं आरईएसटी वेब सेवाओं को बनाने के लिए इस विधि का उपयोग करता हूं।
- 1. PHP 5 में क्या मैं गतिशील रूप से कक्षा को चालू कर सकता हूं?
- 2. क्या मैं किसी अन्य वर्ग के अंदर एक PHP कक्षा को चालू कर सकता हूं?
- 3. उद्देश्य-सी में स्ट्रिंग से कक्षा के किसी ऑब्जेक्ट को तुरंत चालू करने के लिए कैसे करें?
- 4. कक्षा के नाम में कैपिटल अक्षरों PHP
- 5. PHP: किसी सरणी को StdClass ऑब्जेक्ट में कैसे चालू करें?
- 6. मैं DataContractJsonSerializer को किसी ऑब्जेक्ट को स्ट्रिंग के रूप में क्रमबद्ध कैसे कर सकता हूं?
- 7. कक्षा से वैरिएबल विधि को परिवर्तनीय नाम के रूप में कॉल नहीं कर सकता?
- 8. मैं केवल एक वस्तु को जानने के लिए किसी ऑब्जेक्ट को कैसे चालू कर सकता हूं?
- 9. XML ऑब्जेक्ट के रूप में PHP ऑब्जेक्ट
- 10. PHP: ऑब्जेक्ट के भीतर से किसी ऑब्जेक्ट को नष्ट करें?
- 11. किसी ऑब्जेक्ट को स्ट्रिंग
- 12. PHP: किसी ऑब्जेक्ट से "bla_"
- 13. क्या सी ++ में किसी फ़ंक्शन के पैरामीटर के रूप में कक्षा को पास करना संभव है?
- 14. क्या मैं प्रोग्रामेटिक रूप से नामित स्थानीय डीबी इंस्टेंस को चालू कर सकता हूं?
- 15. क्या ऑब्जेक्ट अपने उद्देश्य को हासिल करने के बाद स्वचालित रूप से किसी ऑब्जेक्ट को जावास्क्रिप्ट में हटा सकता है?
- 16. क्या मैं एक ऑब्जेक्ट पहचानकर्ता के रूप में खाली स्ट्रिंग का उपयोग कर सकता हूं?
- 17. कक्षा शुरू करने और किसी ऑब्जेक्ट को तुरंत चालू करने के बीच अंतर?
- 18. किसी BsonDocument ऑब्जेक्ट को कक्षा
- 19. स्कैला में, ऑब्जेक्ट के मानों को मानचित्र [स्ट्रिंग, स्ट्रिंग] में कैसे चालू करें?
- 20. मैं कोडनिर्देशक में एक ही ऑब्जेक्ट के कई उदाहरणों को कैसे चालू कर सकता हूं?
- 21. स्वचालित रूप से जीथ्यूब को चालू/धक्का दे सकता है?
- 22. मैं किसी विधि के पैरामीटर के रूप में कक्षा की संपत्ति कैसे पास कर सकता हूं?
- 23. क्लास नाम ज्ञात होने पर ऑब्जेक्ट क्लास के जावा ऑब्जेक्ट को गतिशील रूप से परिवर्तित करना
- 24. लिंकक लैम्ब्डा को दो गुणों को स्ट्रिंग के रूप में स्ट्रिंग के रूप में मिलता है
- 25. पायथन: कक्षा के नाम के रूप में उपयोगकर्ता इनपुट का उपयोग कर कक्षा कारखाना
- 26. PHP में कक्षा क्या है?
- 27. किसी ऑब्जेक्ट को XML स्ट्रिंग
- 28. जावा में कक्षा नाम से क्लास ऑब्जेक्ट कैसे प्राप्त करें
- 29. DefaultModelBinder .NET शब्दकोश ऑब्जेक्ट को जेएसओएन ऑब्जेक्ट के रूप में किसी क्रिया में पास नहीं कर सकता है?
- 30. मैं अपनी कक्षा को अपने TRttiType से कैसे चालू करूं?
कूल, मुझे परीक्षण करने से पहले परीक्षण करना चाहिए था। धन्यवाद! – user135295
@user - बहुत सही। मुझे आश्चर्य है कि मैं कम से कम न्यूनतम करने के बजाय सीधे क्यों आया? lol – Ben
वास्तव में यह इतना स्पष्ट नहीं है। मुझे पता है कि जावा में यह प्रतिबिंब कहा जाता है, लेकिन इसकी तुलना में यह बहुत आसान है। –