定義一個名稱空間
1 |
namespace
test; |
這樣在這個名稱空間定義的方法、類,都隸屬這個名稱空間,甚至在名稱空間內定義的方法、類可以和php內建的方法、類同名。
名稱空間定義方法
1 |
namespace
test; |
2 |
3 |
function getName(){ |
4 |
echo 'tom' ; |
5 |
} |
6 |
7 |
getName(); //同一個名稱空間可以直接呼叫 |
8 |
\test\getName(); //其他名稱空間要這樣呼叫 |
我用的是netbeans,所以打一個\,就彈出提示框,這邊test就是剛才定義的名稱空間了。如下圖
定義一個方法和php內建的方法同名
strlen是php內建的方法,但是在test名稱空間內,也可以定義。如果在名稱空間內要呼叫php內建的方法,使用\符號就可以了,看下面程式碼:
1 |
namespace
test; |
2 |
function strlen ( $str ){
} |
3 |
4 |
strlen ( 'tom' ); //這裡呼叫的是test名稱空間的方法 |
5 |
\test\ strlen ( 'tom' ); //同上 |
6 |
\ strlen ( 'tom' ); //這裡呼叫的是php內建的方法 |
多重新命名空間
名稱空間也支援多重新命名空間,例如:
1 |
namespace
test\test2; |
2 |
3 |
function getName()
{ |
4 |
echo 'anny' ; |
5 |
} |
6 |
7 |
\test\test2\getName(); //輸出anny |
使用命名空感覺確實方便了不少,只要確定了名稱空間,就不用擔心和其他人協同開發專案時定義的方法,類名出現重複。zend framework 2也廣泛使用名稱空間了。