php命名空間
php命名空間可以解決以下兩種問題:
1.使用者編寫的**與php內部的類/函式/常量或第三方類/函式/常量之間的名字衝突。
2.為很長的識別符號名稱(通常是為了緩解第一類問題而定義的)建立乙個別名(或簡短)的名稱,提高源**的可讀性。
命名空間簡述
定義命名空間:
(預設情況下,所有常量、類和函式名都放在全域性空間下,就和php支援命名空間之前一樣。)
命名空間通過關鍵字namespace 來宣告。如果乙個檔案中包含命名空間,它必須在其它所有**之前宣告命名空間。
語法格式如下:
也可以在同乙個檔案中定義不同的命名空間**,如下所示:
注意:1.命名空間對define定義的常量不管用。
2.宣告命名空間之前唯一合法的**是用於定義原始檔編 碼方式的 declare語句。所有非 php **包括空白符都不能出現在命名空間的宣告之前。
以下**會出現語法錯誤:
3.將全域性的非命名空間中的**與命名空間中的**組合在一起,只能使用大括號形式的語法。全域性**必須用乙個不帶名稱的namespace 語句加上大括號括起來。
子命名空間
與目錄和檔案的關係很像,php 命名空間也允許指定層次化的命名空間的名稱。因此,命名空間的名字可以使用分層次的方式定義:
上面的例子建立了
常量myproject\sub\level\connect_ok,
類 myproject\sub\level\connection
函式 myproject\sub\level\connect。
php 命名空間,PHP使用命名空間
介紹 命名空間中的類,函式或常量可以通過以下方式使用 在當前命名空間中使用類 指定相對於當前命名空間的命名空間 提供命名空間的全限定名稱 從當前命名空間 在此示例中,從test1.php載入了命名空間。沒有命名空間引用的函式或類名稱將訪問當前命名空間中的功能或類名稱 示例 test1.php nam...
php命名空間
namespace misszhou function var dump a 1 var dump var dump 1 表示呼叫全域性 解決常量的衝突問題 有點像子目錄的概念 namespace meizi 必須放第一行 include func.inc.php function one func...
php 命名空間
使用命名空間 別名 匯入,允許通過別名引用或匯入外部的完全限定名稱,是命名空間的乙個重要特徵。這有點類似於在類 unix 檔案系統中可以建立對其它的檔案或目錄的符號連線。所有支援命名空間的php版本支援三種別名或匯入方式 為類名稱使用別名 為介面使用別名或為命名空間名稱使用別名。php 5.6開始允...