পরিচয়
নামস্থানের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল একটি উপনাম সহ একটি বহিরাগত সম্পূর্ণ যোগ্য নাম উল্লেখ করার ক্ষমতা, বা আমদানি করা। পিএইচপি নেমস্পেসগুলি নিম্নলিখিত ধরণের অ্যালিয়াসিং বা আমদানি −
সমর্থন করে- একটি শ্রেণির নাম উপনামকরণ,
- একটি ইন্টারফেসের নাম উপনামকরণ,
- একটি নামস্থান নামের উপনামকরণ
- অ্যালিয়াসিং বা ইম্পোর্টিং ফাংশন এবং ধ্রুবক নাম।
পিএইচপি-তে, অপারেটর ব্যবহার করে অ্যালিয়াসিং সম্পন্ন করা হয়।
অপারেটর ব্যবহার করুন
উদাহরণ
#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; // // } ?>
অন্তর্ভুক্ত ফাইলগুলি মূল ফাইলের আমদানির নিয়মগুলির উত্তরাধিকারী হবে না কারণ সেগুলি ফাইলের ভিত্তিতে হয়