PHP名稱解析規則


介紹

在PHP程式碼中,名稱空間的出現根據以下規則解析:

  • 不包含名稱空間分隔符(**\**)的名稱空間識別符號表示它引用當前名稱空間。這是一個非限定名。

  • 如果它包含分隔符,例如 **myspace\space1**,它將解析為 myspace 下的子名稱空間 space1。這種型別的命名是相對名稱空間。

  • 完全限定名稱空間的名稱以 \ 字元開頭。例如,\myspace 或 **\myspace\space1**。

  • 完全限定名稱解析為絕對名稱空間。例如 **\myspace\space1** 解析為 **myspace\space1** 名稱空間

  • 如果名稱出現在全域性名稱空間中,則將刪除 **namespace\** 字首。例如 **namespace\space1** 解析為 **space1**。

  • 但是,如果它出現在另一個名稱空間內,則處理方式不同。例如,如果 **namespace\space1** 在 myspace 內,它等效於 **myspace\space1**

  • 限定名稱中名稱的第一部分根據當前類/名稱空間匯入表進行轉換。

  • 如果沒有任何匯入規則適用,則將當前名稱空間新增到名稱前面。

  • 類名根據類/名稱空間匯入表進行轉換,函式名根據函式匯入表進行轉換,常量根據常量匯入表進行轉換。

  • 對於非限定名稱,如果沒有任何匯入規則適用,並且名稱引用函式或常量,並且程式碼位於全域性名稱空間之外,則在執行時解析名稱。它首先從當前名稱空間查詢函式,然後嘗試查詢並呼叫全域性函式。

更新於:2020年9月18日

165 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.