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