[Php 5> = 5.3.0, Php 7, Php 8]
Trước khi thảo luận về việc sử dụng các không gian tên, điều quan trọng là phải hiểu làm thế nào PHP biết phần tử tên nào được yêu cầu. Một sự tương tự đơn giản có thể được thực hiện giữa các không gian tên PHP và hệ thống tập tin. Có ba cách để truy cập một tệp trong hệ thống tệp:
- Tên tệp tương đối như
foo.txt
. Điều này giải quyết thànhcurrentdirectory/foo.txt
trong đó hiện tại là thư mục hiện đang bị chiếm. Vì vậy, nếu thư mục hiện tại là/home/foo
, tên được giải quyết thành/home/foo/foo.txt
. - Tên đường dẫn tương đối như
subdirectory/foo.txt
. Điều này giải quyết đếncurrentdirectory/subdirectory/foo.txt
. - Tên đường dẫn tuyệt đối như
/main/foo.txt
. Điều này giải quyết đến/main/foo.txt
.
Nguyên tắc tương tự có thể được áp dụng cho các yếu tố đặt tên trong PHP. Ví dụ, một tên lớp có thể được đề cập theo ba cách:
- Tên không đủ tiêu chuẩn, hoặc một tên lớp không bị hủy bỏ như
$a = new foo[];
hoặcfoo::staticmethod[];
. Nếu không gian tên hiện tại làcurrentdirectory/foo.txt
0, điều này sẽ giải quyết thànhcurrentdirectory/foo.txt
1. Nếu mã là mã toàn cầu, không được ký tên, thì điều này sẽ giải quyết thànhcurrentdirectory/foo.txt
2. Một cảnh báo: Tên không đủ tiêu chuẩn cho các hàm và hằng số sẽ giải quyết cho các chức năng và hằng số toàn cầu nếu hàm tên hoặc hằng số không được xác định. Xem bằng cách sử dụng không gian tên: dự phòng vào chức năng/hằng số toàn cầu để biết chi tiết. One caveat: unqualified names for functions and constants will resolve to global functions and constants if the namespaced function or constant is not defined. See Using namespaces: fallback to global function/constant for details. - Tên đủ điều kiện hoặc tên lớp có tiền tố như
currentdirectory/foo.txt
3 hoặccurrentdirectory/foo.txt
4. Nếu không gian tên hiện tại làcurrentdirectory/foo.txt
0, điều này sẽ giải quyết thànhcurrentdirectory/foo.txt
6. Nếu mã là mã toàn cầu, không được ký tên, thì điều này sẽ giải quyết thànhcurrentdirectory/foo.txt
7. - Tên đủ điều kiện hoặc tên tiền tố với toán tử tiền tố toàn cầu như
currentdirectory/foo.txt
8 hoặccurrentdirectory/foo.txt
9. Điều này luôn giải quyết cho tên theo nghĩa đen được chỉ định trong mã,currentdirectory/foo.txt
1.
Dưới đây là một ví dụ về ba loại cú pháp trong mã thực tế:
file1.php
/home/foo
1
/home/foo
2
/home/foo
3file2.php
/home/foo
4
/home/foo
2
/home/foo
6 Lưu ý rằng để truy cập bất kỳ lớp toàn cầu, hàm hoặc hằng số, có thể sử dụng tên đủ điều kiện, chẳng hạn như \ strlen [] hoặc \ Exception hoặc /home/foo
7.\strlen[] or \Exception or /home/foo
7.
Ví dụ #1 truy cập các lớp, chức năng và hằng số toàn cầu từ trong không gian tên
/home/foo
8
/home/foo
9
/home/foo/foo.txt
0Richard tại Richard-sumilang dot com ¶
14 năm trước
/home/foo/foo.txt
1
/home/foo/foo.txt
2
/home/foo/foo.txt
3
/home/foo/foo.txt
4
/home/foo/foo.txt
5Ẩn danh ¶ ¶
8 năm trước
/home/foo/foo.txt
6
/home/foo/foo.txt
7
/home/foo/foo.txt
8Lukas Z ¶
10 năm trước
/home/foo/foo.txt
9
subdirectory/foo.txt
0
subdirectory/foo.txt
1Tom tại Tomwardrop Dot Com ¶ ¶
10 năm trước
subdirectory/foo.txt
2
subdirectory/foo.txt
3
subdirectory/foo.txt
4
subdirectory/foo.txt
5Tom tại Tomwardrop Dot Com ¶ ¶
Philip Dot Preisser tại Arcor Dot de ¶
subdirectory/foo.txt
6
subdirectory/foo.txt
7
subdirectory/foo.txt
8
subdirectory/foo.txt
9