Giới thiệu
Trong code PHP, sự xuất hiện của namespace được phân giải theo các quy tắc sau:
Tên định danh namespace không có dấu phân cách (\) nghĩa là nó tham chiếu đến namespace hiện tại. Đây là unqualified name (tên không đầy đủ).
Nếu chứa dấu phân cách như myspace\space1, nó phân giải thành sub-namespace space1 dưới myspace. Loại đặt tên này là relative namespace (namespace tương đối).
Tên fully qualified namespace bắt đầu bằng ký tự \. Ví dụ: \myspace hoặc \myspace\space1.
Fully qualified names phân giải thành namespace tuyệt đối. Ví dụ \myspace\space1 phân giải thành namespace myspace\space1.
Nếu tên xuất hiện trong global namespace, tiền tố namespace\ bị loại bỏ. Ví dụ namespace\space1 phân giải thành space1.
Tuy nhiên, nếu nó xuất hiện bên trong namespace khác, nó được xử lý khác. Ví dụ, nếu namespace\space1 nằm trong myspace, nó tương đương với myspace\space1.
Đoạn đầu tiên của tên trong qualified name được dịch theo bảng import class/namespace hiện tại.
Nếu không có quy tắc import áp dụng, namespace hiện tại được thêm vào trước tên.
Tên kiểu class được dịch theo bảng import class/namespace, tên function theo bảng import function, hằng số theo bảng import constant.
Đối với unqualified names, nếu không có quy tắc import áp dụng và tên tham chiếu đến function hoặc constant và code ở ngoài global namespace, tên được phân giải tại runtime. Trước tiên tìm function từ namespace hiện tại, sau đó thử tìm và gọi global function.