परिचय
.php एक्सटेंशन वाली एक ही फाइल में एक से अधिक नेमस्पेस परिभाषित किए जा सकते हैं। इसके लिए दो अलग-अलग तरीके निर्धारित हैं: कॉम्बिनेशन सिंटैक्स और ब्रैकेटेड सिंटैक्स।
कॉम्बिनेशन सिंटैक्स के साथ मल्टीपल नेमस्पेस
इस उदाहरण में दो नेमस्पेस एक के नीचे एक परिभाषित हैं। पहले नेमस्पेस के संसाधन दूसरी परिभाषा शुरू होने तक उपलब्ध हैं। यदि आप किसी नेमस्पेस को करंट बनाना चाहते हैं, तो इसे use कीवर्ड से लोड करें।
उदाहरण
<?php
namespace myspace1;
function hello() {
echo "Hello World from space1\n";
}
echo "myspace1: ";
hello();
namespace myspace\space2;
function hello() {
echo "Hello World from space2\n";
}
echo "myspace2: ";
hello();
use myspace1;
hello();
use myspace2;
hello();
?>
आउटपुट
myspace1: Hello World from space1 myspace2: Hello World from space2 Hello World from space2 Hello World from space2
ब्रैकेटेड सिंटैक्स के साथ मल्टीपल नेमस्पेस
निम्न उदाहरण में दो नेमस्पेस कर्ली ब्रैकेट्स द्वारा अपने स्कोप के साथ परिभाषित हैं:
उदाहरण
<?php
namespace myspace1 {
function hello() {
echo "Hello World from space1\n";
}
echo "myspace1: ";
hello();
}
namespace myspace\space2 {
function hello() {
echo "Hello World from space2\n";
}
echo "myspace2: ";
hello();
}
?>
आउटपुट
myspace1: Hello World from space1 myspace2: Hello World from space2
सिफारिश और नियम
- ब्रैकेटेड सिंटैक्स मल्टीपल नेमस्पेस के लिए कॉम्बिनेशन सिंटैक्स पर अनुशंसित है।
- ब्रैकेटेड और अनब्रैकेटेड नेमस्पेस मिक्स नहीं किए जा सकते।
- एक ओपनिंग declare स्टेटमेंट के अलावा, कोई अन्य PHP कोड नेमस्पेस ब्रैकेट्स के बाहर मौजूद नहीं हो सकता।
- यदि आपको ग्लोबल नेमस्पेस को नेम्ड नेमस्पेस के साथ जोड़ना है, तो केवल ब्रैकेटेड सिंटैक्स अनुमत है।
ग्लोबल नेमस्पेस के साथ ब्रैकेटेड सिंटैक्स
<?php
namespace MyProject {
// MyProject नेमस्पेस कोड
}
namespace {
// ग्लोबल नेमस्पेस कोड
function globalFunc() { echo "global"; }
}
?>