परिचय
नेमस्पेस की एक महत्वपूर्ण विशेषता बाहरी पूरी तरह से योग्य नाम को एक उपनाम, या आयात के साथ संदर्भित करने की क्षमता है। PHP नामस्थान निम्नलिखित प्रकार के अलियासिंग या आयात का समर्थन करते हैं -
- कक्षा का नाम उपनाम करना,
- इंटरफ़ेस नाम को अलियास करना,
- नामस्थान का नाम उपनाम करना
- फ़ंक्शन और निरंतर नामों को अलियासिंग या आयात करना।
PHP में, एलियासिंग को उपयोग ऑपरेटर के साथ पूरा किया जाता है।
ऑपरेटर का उपयोग करें
उदाहरण
#test1.php <?php namespace mynamespace; function sayhello(){ echo "Hello from mynamespace\n"; } sayhello(); namespace mynewspace; function sayhello(){ echo "Hello from my new space\n"; } sayhello(); use \mynewspace\sayhello as hello; ?>
आउटपुट
Hello from mynamespace Hello from my new space
एकाधिक उपयोग कथन संयुक्त
उदाहरण
<?php namespace mynamespace; class myclass{ function test() { echo "myclass in mynamespace\n"; } } class testclass{ static function test() { echo "testclass in mynamespace\n"; } } use \mynamespace\myclass as myclass, \mynamespace\testclass; $a=new myclass(); $a->test(); $b=new \mynamespace\testclass(); $b->test(); ?>
आउटपुट
myclass in mynamespace testclass in mynamespace
आयात करना और गतिशील नाम
आयातित वर्ग का स्थानापन्न नाम गतिशील रूप से
उदाहरण
<?php namespace mynamespace; class myclass{ function test() { echo "myclass in mynamespace\n"; } } class testclass{ static function test() { echo "testclass in mynamespace\n"; } } use \mynamespace\myclass as myclass; $a=new myclass; $b='myclass'; $c=new $b; ?>
उपयोग कीवर्ड को बाहरीतम या वैश्विक दायरे में, या नामस्थान घोषणाओं के अंदर घोषित किया जाना चाहिए। आयात की प्रक्रिया संकलन समय पर की जाती है न कि रनटाइम पर। इसलिए इसे ब्लॉक स्कोप नहीं किया जा सकता है। निम्नलिखित उपयोग अवैध होगा
उदाहरण
<?php function myfunction(){ use myspace\myclass; // // } ?>
शामिल फ़ाइलें मूल फ़ाइल के आयात नियमों को इनहेरिट नहीं करेंगी क्योंकि वे प्रति फ़ाइल आधार पर हैं