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

PHP में नेमस्पेस समस्याओं का निवारण: क्लास क्यों नहीं मिली?

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

Troubleshooting Namespace Issues in PHP: Why Class Not Found?

PHP ऑटोलोड के साथ नेमस्पेस समस्याओं का निवारण

PHP में नेमस्पेस और ऑटोलोड तंत्र का उपयोग करते समय, त्रुटियों का सामना करना आम बात है जो इंगित करती है कि वांछित वर्ग नहीं मिल सकता है। आइए इस त्रुटि के पीछे के कारण का पता लगाएं और एक समाधान प्रदान करें।

जैसा कि दिए गए कोड स्निपेट में दिखाया गया है, त्रुटि "क्लास 'क्लास1' नहीं मिली" इसलिए होती है क्योंकि क्लास1 क्लास को वैश्विक दायरे में परिभाषित नहीं किया गया है। PHP में, नेमस्पेस के भीतर परिभाषित कक्षाओं को सीधे एक्सेस नहीं किया जा सकता है जब तक कि नेमस्पेस स्पष्ट रूप से निर्दिष्ट नहीं किया जाता है या किसी उपनाम के साथ उपयोग नहीं किया जाता है।

इस समस्या को हल करने के लिए, किसी को ऑटोलोडर फ़ंक्शन का उपयोग करना होगा। ऑटोलोडर्स अपने नेमस्पेस संरचना के आधार पर कक्षाओं को गतिशील रूप से लोड करने के लिए जिम्मेदार हैं। यहां एक बुनियादी ऑटोलोडर फ़ंक्शन का उदाहरण दिया गया है:

function __autoload($class)
{
    // Adapt the following line based on your file path structure
    $path = dirname(__FILE__) . '/' . str_replace('\\', '/', $class) . '.php';
    if (file_exists($path)) {
        require($path);
    }
}

यह ऑटोलोडर नेमस्पेस संरचना के आधार पर क्लास फ़ाइलों की खोज करता है, जहां नेमस्पेस घटकों को स्लैश द्वारा अलग किया जाता है। आपके मामले में, क्लास 1 क्लास के लिए फ़ाइल पर्सन/बार्न्स/डेविड/क्लास1.php पर स्थित होगी। आपको उनके पथ को पूरी तरह से निर्दिष्ट किए बिना उस नेमस्पेस से कक्षाओं को तुरंत चालू करना होगा।

Person\Barnes\David का उपयोग करें; $class = new डेविड\Class1();
use Person\Barnes\David;

$class = new David\Class1();

Person\Barnes\David को MyPerson के रूप में उपयोग करें; $class = new MyPerson\Class1();
use Person\Barnes\David as MyPerson;

$class = new MyPerson\Class1();
विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729317379 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3