ভূমিকা
একটি PHP কোডে নেমস্পেসের উপস্থিতি নিচের নিয়ম অনুযায়ী রেজোলভ করা হয়:
নেমস্পেস সেপারেটর সিম্বল (/) ছাড়া একটি নেমস্পেস আইডেন্টিফায়ার মানে এটি কারেন্ট নেমস্পেসকে বোঝাচ্ছে। এটি একটি আনকোয়ালিফাইড নাম।
যদি এতে সেপারেটর সিম্বল থাকে যেমন myspace\space1, তবে এটি myspace-এর অধীনে space1 সাব-নেমস্পেসকে রেজোলভ করে। এই ধরনের নামকরণ রিলেটিভ নেমস্পেস।
ফুলি কোয়ালিফাইড নেমস্পেসের নাম \ ক্যারেক্টার দিয়ে শুরু হয়। উদাহরণস্বরূপ, \myspace বা \myspace\space1।
ফুলি কোয়ালিফাইড নাম অ্যাবসোলিউট নেমস্পেসে রেজোলভ হয়। উদাহরণস্বরূপ \myspace\space1 রেজোলভ হয় myspace\space1 নেমস্পেসে।
যদি নাম গ্লোবাল নেমস্পেসে থাকে, namespace\ প্রিফিক্স সরানো হয়। উদাহরণস্বরূপ namespace\space1 রেজোলভ হয় space1-এ।
তবে, যদি এটি অন্য একটি নেমস্পেসের ভিতরে থাকে, তবে এটি ভিন্নভাবে ট리트 করা হয়। উদাহরণস্বরূপ, যদি namespace\space1 myspace-এর ভিতরে থাকে, তবে এটি সমতুল্য myspace\space1-এর।
কোয়ালিফাইড নেমের প্রথম সেগমেন্ট কারেন্ট ক্লাস/নেমস্পেস ইমপোর্ট টেবিল অনুযায়ী ট্রানসলেট করা হয়।
যদি কোনো ইমপোর্ট রুল প্রযোজ্য না হয়, কারেন্ট নেমস্পেস নামের সাথে প্রিপেন্ড করা হয়।
ক্লাস-লাইক নাম ক্লাস/নেমস্পেস ইমপোর্ট টেবিল অনুযায়ী, ফাংশন নাম ফাংশন ইমপোর্ট টেবিল অনুযায়ী এবং কনস্ট্যান্ট কনস্ট্যান্ট ইমপোর্ট টেবিল অনুযায়ী ট্রানসলেট করা হয়।
আনকোয়ালিফাইড নামের জন্য, যদি কোনো ইমপোর্ট রুল প্রযোজ্য না হয় এবং নাম একটি ফাংশন বা কনস্ট্যান্টকে বোঝায় এবং কোড গ্লোবাল নেমস্পেসের বাইরে থাকে, তবে নাম রানটাইমে রেজোলভ হয়। প্রথমে কারেন্ট নেমস্পেস থেকে ফাংশন খুঁজে বের করা হয়, তারপর গ্লোবাল ফাংশন খুঁজে কল করার চেষ্টা করা হয়।