在php裡邊,同一個應用請求裡邊如果存在兩個方法(類名),他們的名字一樣(例如都是getName()),由於php本身語法規則的限制,系統是要報錯的
解決方法:
① 把他們的名字改為不一樣的 例如 agetName() bgetName()
② 透過名稱空間解決
Yii 框架為了避免名字重複引起問題,同步的類前邊都有 C 字樣
1. 簡單應用
a) 名稱空間是虛擬的定義空間,不是真實存在目錄
b) 名稱空間的分隔符都是反斜槓 \
c) 非限定名稱:getName() 獲得與其最近的名稱空間的getName()
d) 限定名稱:beijing\getName() 相對方式 透過最近的名稱空間定位beijing\getName()
e) 完全限定名稱: \beijing\getName() 直接在指定的名稱空間獲得具體元素
f) 名稱空間針對:函式、類名、常量三者其作用,在命名空間裡邊把這三種統稱為元素
2、別名和匯入
a) 匯入/引入 use
b) 使用一個元素,使用非限定名稱,在當前最接近的空間裡邊獲得元素
c) 如果當前空間裡邊沒有指定元素,也可以在匯入的空間裡邊尋找
3、公共空間
a) 第一種情況
b) 沒有使用namespace定義空間,當前空間就是一個公共空間
c) 例如一個有namespace的檔案引入了一個沒有namespace的檔案程式
d) 沒有namespace的檔案空間就是公共空間
e) 在namespace檔案裡邊可以透過\斜槓直接訪問公共空間元素
f) function getName(){} ------公共空間的元素
g) namespace beijing;
h) function getName(){} -----beijing空間的元素
i) 第二種情況
j) 當前檔案沒有namespace、但是引入的檔案有namespace
k) 當前檔案就是公共空間,引入檔案有自己空間
在php裡邊,同一個應用請求裡邊如果存在兩個方法(類名),他們的名字一樣(例如都是getName()),由於php本身語法規則的限制,系統是要報錯的
解決方法:
① 把他們的名字改為不一樣的 例如 agetName() bgetName()
② 透過名稱空間解決
Yii 框架為了避免名字重複引起問題,同步的類前邊都有 C 字樣
1. 簡單應用
a) 名稱空間是虛擬的定義空間,不是真實存在目錄
b) 名稱空間的分隔符都是反斜槓 \
c) 非限定名稱:getName() 獲得與其最近的名稱空間的getName()
d) 限定名稱:beijing\getName() 相對方式 透過最近的名稱空間定位beijing\getName()
e) 完全限定名稱: \beijing\getName() 直接在指定的名稱空間獲得具體元素
f) 名稱空間針對:函式、類名、常量三者其作用,在命名空間裡邊把這三種統稱為元素
2、別名和匯入
a) 匯入/引入 use
b) 使用一個元素,使用非限定名稱,在當前最接近的空間裡邊獲得元素
c) 如果當前空間裡邊沒有指定元素,也可以在匯入的空間裡邊尋找
3、公共空間
a) 第一種情況
b) 沒有使用namespace定義空間,當前空間就是一個公共空間
c) 例如一個有namespace的檔案引入了一個沒有namespace的檔案程式
d) 沒有namespace的檔案空間就是公共空間
e) 在namespace檔案裡邊可以透過\斜槓直接訪問公共空間元素
f) function getName(){} ------公共空間的元素
g) namespace beijing;
h) function getName(){} -----beijing空間的元素
i) 第二種情況
j) 當前檔案沒有namespace、但是引入的檔案有namespace
k) 當前檔案就是公共空間,引入檔案有自己空間