在C#和Java中都有命名空間的概念,而在PHP中,命名空間在PHP 5.3版本中首次加入的,之前的版本沒有這個功能。php
作項目時,一個文件可能會引入多個文件。若是不使用命名空間,引入的多個文件中可能存在同名的類、函數、常量,就會報錯(重複定義的錯誤)。html
以函數爲例,演示以下:框架
1.1.1 不使用命名空間:函數
運行結果:編碼
1.1.2 使用命名空間:spa
只在上述代碼中修改b.php文件,以下:htm
再次訪問,則不會報錯,運行結果:blog
簡單的說,就是解決代碼衝突。具體以下:開發
如上1.1.2所示,一旦namespace聲明瞭命名空間,後面的代碼都屬於該空間。get
分爲兩類:全局空間 和 命名空間
不在namespace聲明的空間裏面的代碼都屬於全局空間。
如:namespace Think;
如:namespace Think\Controller; 這種反斜線分割的、層次化的,就是子命名空間。
若是須要在命名空間使用全局空間的類、函數、常量,在調用時,須要加上反斜線(表明全局空間)。
語法:use 命名空間,能夠起別名(as 別名)。
目的:在當前文件中使用其餘命名空間的 類、函數、常量。(使用時,就不用加上限定名稱)