แนะนำตัว
คุณลักษณะที่สำคัญของเนมสเปซคือความสามารถในการอ้างถึงชื่อภายนอกที่มีคุณสมบัติครบถ้วนโดยใช้นามแฝงหรือการนำเข้า เนมสเปซ 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; ?>
คีย์เวิร์ด use จะต้องประกาศในขอบเขตนอกสุดหรือขอบเขตส่วนกลาง หรือการประกาศเนมสเปซภายใน กระบวนการนำเข้าเสร็จสิ้นในเวลาคอมไพล์ ไม่ใช่รันไทม์ ดังนั้นจึงไม่สามารถปิดกั้นขอบเขตได้ การใช้งานต่อไปนี้จะผิดกฎหมาย
ตัวอย่าง
<?php function myfunction(){ use myspace\myclass; // // } ?>
ไฟล์ที่รวมไว้จะไม่สืบทอดกฎการนำเข้าของไฟล์พาเรนต์ตามเกณฑ์ของไฟล์