"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं PHP में एक वेरिएबल से क्लास को इंस्टेंट कैसे कर सकता हूँ?

मैं PHP में एक वेरिएबल से क्लास को इंस्टेंट कैसे कर सकता हूँ?

2024-11-18 को प्रकाशित
ब्राउज़ करें:640

How Can I Instantiate a Class from a Variable in PHP?

PHP में एक वेरिएबल से क्लास इंस्टेंटिएशन को कार्यान्वित करना

PHP में, आप एक ऐसे परिदृश्य का सामना कर सकते हैं जहां आपको एक वेरिएबल के मान से क्लास को इंस्टेंटियेट करने की आवश्यकता होती है। आइए इसे एक उदाहरण से स्पष्ट करें:

$var = 'bar';
$bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');

यह विधि $var वैरिएबल द्वारा निर्दिष्ट क्लास का एक उदाहरण बनाने का प्रयास करती है। हालाँकि, PHP मूल रूप से इस सिंटैक्स का समर्थन नहीं करता है। ]

$classname = $var। 'कक्षा'; // उदा. $क्लासनाम = 'बारक्लास' $bar = new $classname('var for __construct()');

Factory पैटर्न

यह तकनीक अक्सर फ़ैक्टरी पैटर्न में नियोजित होती है, जिसका उपयोग क्लास निर्माण को केंद्रीकृत करने और इसे अलग करने के लिए किया जाता है सृजन प्रक्रिया से. ऐसे परिदृश्यों में, एक फ़ैक्टरी क्लास कॉन्फ़िगरेशन या अन्य मापदंडों के आधार पर गतिशील रूप से वांछित क्लास इंस्टेंसेस बनाएगी।
$classname = $var . 'Class'; // e.g. $classname = 'barClass'

$bar = new $classname('var for __construct()');
अतिरिक्त संसाधन

डायनामिक भाषा सुविधाओं और नामस्थानों पर अधिक जानकारी के लिए, निम्नलिखित संसाधनों का संदर्भ लें:

[नामस्थान](https://www.php.net/manual/en/भाषा.namespaces.php)

[गतिशील भाषा विशेषताएं](https://www .php.net/manual/en/भाषा.प्रकार.डायनामिक.php)

    नवीनतम ट्यूटोरियल अधिक>

    चीनी भाषा का अध्ययन करें

    अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

    Copyright© 2022 湘ICP备2022001581号-3