回覆列表
  • 1 # 何以笙丶丶

    在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) 當前檔案就是公共空間,引入檔案有自己空間

  • 中秋節和大豐收的關聯?
  • 在食品動物上禁止使用的獸藥有哪些?