1. 程式人生 > >php中名稱空間(namespace)的作用和使用

php中名稱空間(namespace)的作用和使用

1.名稱空間的作用:

在PHP中函式、類、常量是不允許同名的。為了解決這三者的同名問題,所以出現了名稱空間. 其實不僅僅是php,其他語言也有類似的使用。比如JavaScript中:

我們來詳細的講解一下PHP中的名稱空間:

語法:namespace 空間名\空間名;

說明: 用於定義空間名;如果一個php檔案中,第一個空間的定義義必須放在第1行。如果所要定義的空間已存在,則是進入空間。程式碼示例如下:

2.空間成員:所謂空間成員就是,空間所影響的,空間隻影響類、函式、常量(const)

3.空間成員的訪問:訪問方式分為限定,非限定,完全訪問,之間的區別,我們使用程式碼來說明一下。

但是在實際的使用中,我們很多類和方法都是在不同的檔案中,這就涉及到引入的問題,也就是在實際開發中,我們經常會在一個檔案中引入另一個php檔案。這種情況下有兩種情況:

  1. 當前檔案有空間的定義,被引入的檔案中沒有空間的定義,但是有空間成員。被引入的空間成員會被放在公共空間(根空間)

程式碼示例如下:

第二種情況:當前檔案有空間的定義,被引入的檔案中有空間的定義,並不會中斷當前空間的定義

4.引入空間成員:

1.use 空間名\空間名 【as 別名】:將指定空間引入到當前空間。同可以使用as關鍵字為被引入的空間起個別名。

2.use 空間名\空間名\成員類 【as 別名】:將指定的空間中的成員引入到當前空間,引入空間成員只能引入類。

5.空間命名的方式:空間名我們可以任意的定義,但是如果命名更有意義呢。一般我們會以類檔案所在的資料夾為空間名。其實主要的就是方便按照某種約定成俗的規則載入檔案。

這裡我們只是簡單的介紹了一下名稱空間的作用和使用。其實很多框架內部也是這樣的使用。不同的類在不同的空間,相互之間的引用也是遵循著相應引入規則。