Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP นามแฝง/การนำเข้าเนมสเปซ


แนะนำตัว

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

ไฟล์ที่รวมไว้จะไม่สืบทอดกฎการนำเข้าของไฟล์พาเรนต์ตามเกณฑ์ของไฟล์