乙個檔案需要包含多個類,載入幾個類,那麼類可能出現重名的情況,php不允許類出現重名的情況
早期的時候,可能是給類加上字首來控制,用這種方式來進行區分,為了讓它不跟其他類有衝突
後期php提供了命名空間,是為了幫助解決這種問題而產生的
檔案系統中會把同名的用不同的資料夾隔離起來,命名空間就是類似的
就是說你用別人的類,可能與你自己的有衝突,只要使用命名空間,比如ali命名空間,就可以跟他避免開了,所以使用第三方的時候,也不用擔心,因為他們都有命名空間,命名空間就相當於資料夾
使用命名空間後,再直接使用類名就會報錯
也可以在命名空間放函式
namespace
helper
;function
show()
helper\show()
;namespace
;include
'common.php'
;include
'order.php';:
:make()
;controller:
:make()
;//正確
common\comment::
make()
;\common\comment::
make()
;
常量
define不受命名空間的影響
const web = 'web.com';//跟函式一樣,在當前找不到才會去包含檔案去找
const受到命名空間的影響
命名空間關鍵字
也可以namespace \controller\user::make();
namespace就是指當前命名空間
$class = __namespace__.'\\controller\user';
$class::make();
module\shop\controller\user::make();//每次都要這麼寫是不是很麻煩,每次都要寫這麼長
可以使用
user::make();
如果是需要
controller\user::make();
所以一般use都要帶上類名
多個類的引入
或者引入衝突
如果在service命名空間裡,還有乙個user類
```php
userserver::make();
user::make();
echomethod; php 命名空間,PHP使用命名空間
介紹 命名空間中的類,函式或常量可以通過以下方式使用 在當前命名空間中使用類 指定相對於當前命名空間的命名空間 提供命名空間的全限定名稱 從當前命名空間 在此示例中,從test1.php載入了命名空間。沒有命名空間引用的函式或類名稱將訪問當前命名空間中的功能或類名稱 示例 test1.php nam...
php命名空間
namespace misszhou function var dump a 1 var dump var dump 1 表示呼叫全域性 解決常量的衝突問題 有點像子目錄的概念 namespace meizi 必須放第一行 include func.inc.php function one func...
php 命名空間
使用命名空間 別名 匯入,允許通過別名引用或匯入外部的完全限定名稱,是命名空間的乙個重要特徵。這有點類似於在類 unix 檔案系統中可以建立對其它的檔案或目錄的符號連線。所有支援命名空間的php版本支援三種別名或匯入方式 為類名稱使用別名 為介面使用別名或為命名空間名稱使用別名。php 5.6開始允...