Computer >> Máy Tính >  >> Lập trình >> PHP

PHP Aliasing / Nhập không gian tên

Giới thiệu

Một tính năng quan trọng của không gian tên là khả năng tham chiếu đến tên đủ điều kiện bên ngoài với bí danh hoặc nhập khẩu. Không gian tên PHP hỗ trợ các loại bí danh hoặc nhập khẩu sau -

  • bí danh tên lớp,
  • ghép tên giao diện,
  • bí danh tên không gian tên
  • răng cưa hoặc nhập hàm và các tên không đổi.

Trong PHP, bí danh được thực hiện với toán tử sử dụng.

sử dụng toán tử

Ví dụ

#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;
?>

Đầu ra

Hello from mynamespace
Hello from my new space

kết hợp nhiều câu lệnh sử dụng

Ví dụ

<?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();
?>

Đầu ra

myclass in mynamespace
testclass in mynamespace

Nhập và tên động

thay thế động của lớp đã nhập

Ví dụ

<?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;
?>

Từ khóa use phải được khai báo ở ngoài cùng hoặc phạm vi toàn cục, hoặc khai báo không gian tên bên trong. Quá trình nhập được thực hiện tại thời gian biên dịch chứ không phải thời gian chạy. Do đó, nó không thể bị chặn trong phạm vi. Việc sử dụng sau đây sẽ là bất hợp pháp

Ví dụ

<?php
function myfunction(){
   use myspace\myclass;
   //
   //
}
?>

Các tệp được bao gồm sẽ KHÔNG kế thừa các quy tắc nhập của tệp mẹ như chúng có trên cơ sở tệp