< ?php // define this code in the 'MyProject' namespace namespace MyProject; // ... code ...這一行下面的代碼都是指定給MyProject命名空間的,爲相同代碼塊嵌套命名空間或定義多個命名空間是不可能的,若是你真這樣幹,只有最後一個命名空間才能識別,但你能夠在同一個文件中定義不一樣的命名空間代碼,如:
< ?php namespace MyProject1; // PHP code for the MyProject1 namespace namespace MyProject2; // PHP code for the MyProject2 namespace // Alternative syntax namespace MyProject3 { // PHP code for the MyProject3 namespace } ?>儘管這麼幹是能夠的,但我建議你不要這麼作,最好仍是每一個文件中只定義一個命名空間,省得把你弄糊塗了。
lib1.php < ?php // application library 1 namespace App\Lib1; const MYCONST = 'App\Lib1\MYCONST'; function MyFunction() { return __FUNCTION__; } class MyClass { static function WhoAmI() { return __METHOD__; } } ?>
如今咱們能夠在另外一個PHP文件包括這段代碼,如: php
myapp.php < ?php header('Content-type: text/plain'); require_once('lib1.php'); echo \App\Lib1\MYCONST . "\n"; echo \App\Lib1\MyFunction() . "\n"; echo \App\Lib1\MyClass::WhoAmI() . "\n"; ?>在myapp.php中並無定義命名空間,所以這段代碼存在全局空間中,任何對MYCONST、MyFunction和MyClass的直接引用都會失敗,由於它們存在於App\Lib1命名空間中,爲了調用lib1.php中的代碼,咱們能夠在\App\Lib1命名空間前添加前綴定義一個徹底合格的名稱,下面是我載入myapp.php時的輸出結果:
App\Lib1\MYCONST
App\Lib1\MyFunction
App\Lib1\MyClass::WhoAmI app