परिचय
जब PHP पार्सर किसी अनक्वालिफाइड पहचानकर्ता जैसे क्लास या फंक्शन नाम का सामना करता है, तो यह वर्तमान नेमस्पेस को रिज़ॉल्व करता है। इसलिए, PHP की पूर्वनिर्धारित क्लासेज तक पहुंचने के लिए, उन्हें \ प्रीफिक्स करके उनके पूरी तरह से क्वालिफाइड नाम से संदर्भित किया जाना चाहिए।
बिल्ट-इन क्लास का उपयोग
निम्न उदाहरण में, एक नई क्लास पूर्वनिर्धारित stdClass को बेस क्लास के रूप में उपयोग करती है। हम इसे ग्लोबल क्लास निर्दिष्ट करने के लिए \ प्रीफिक्स करके संदर्भित करते हैं:
<?php
namespace testspace;
class testclass extends \stdClass {
//
}
$obj = new testclass();
$obj->name = "Raju";
echo $obj->name;
?>
इंक्लूडेड फाइलें डिफ़ॉल्ट रूप से ग्लोबल नेमस्पेस में डिफ़ॉल्ट होती हैं। इसलिए, इंक्लूडेड फाइल से किसी क्लास को संदर्भित करने के लिए, इसे \ से प्रीफिक्स करना होगा।
उदाहरण: इंक्लूडेड फाइल से क्लास एक्सेस
test1.php
<?php
class myclass {
function hello() { echo "Hello World\n"; }
}
?>
test2.php (अन्य नेमस्पेस में शामिल)
<?php
include 'test1.php';
class testclass extends \myclass {
function hello() {
echo "Hello PHP\n";
}
}
$obj1 = new \myclass();
$obj1->hello();
$obj2 = new testclass();
$obj2->hello();
?>
आउटपुट
Hello World Hello PHP
मुख्य बिंदु
- नेमस्पेस के अंदर, अनक्वालिफाइड क्लास नाम वर्तमान नेमस्पेस को संदर्भित करते हैं।
- ग्लोबल/बिल्ट-इन क्लासेज (जैसे
stdClass,DateTime,Exception) तक पहुंचने के लिए अग्रणी बैकस्लैश\का उपयोग करें। - इंक्लूडेड फाइलें ग्लोबल नेमस्पेस में चलती हैं, इसलिए उनकी क्लासेज ग्लोबल होती हैं।
useस्टेटमेंट के साथ भी ग्लोबल क्लासेज इम्पोर्ट की जा सकती हैं:use \DateTime;