Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Quy tắc phân giải tên (Name Resolution Rules) trong PHP

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.