php namespace的使用方法

2021-08-02 19:47:26 字數 2304 閱讀 7936

最近總結了下php的命名空間的使用方法

1.為什麼使用命名空間 

解決同名的類引起的衝突

2.使用 

定義了3個相同的class的類的檔案如下:

1.php

<?php

class sam

}?>

2.php

<?php

class sam

}?>

3.php

<?php

class sam

}?>

接下來我們把這個三個檔案包含到index.php中來進行呼叫

<?php

require_once('1.php');

require_once('2.php');

require_once('3.php');

$a->test();

$b->test();

$c = new \sam();

$c->test();

?>

輸出:

this is test for namespace 11111111

this is test for namespace 222222222

this is test for namespace 333333333

全域性呼叫的時候要注意當index.php本身定義了namespace的時候:

<?php

require_once('1.php');

require_once('2.php');

require_once('3.php');

$a->test();

$b->test();

$c = new \sam(); //引入頂級空間下的sam類

$c->test();

?>

上面的呼叫就會出錯了:

做成修改:

<?php

require_once('1.php');

require_once('2.php');

require_once('3.php');

//要以 '\' 根命名空間開頭

$a->test();

$b->test();

$c = new \sam();

$c->test();

?>

輸出:

this is test for namespace 11111111

this is test for namespace 222222222

this is test for namespace 333333333

使用use來進行呼叫

index.php

<?php

require_once('1.php');

require_once('2.php');

require_once('3.php');

$a = new aaa\sam();

$a->test();

$b = new bbb\sam();

$b->test();

$c = new \sam();

$c->test();

?>

<?php

//命名空間名字跟真實的路徑沒有任何關係

require_once('1.php');

require_once('2.php');

require_once('3.php');

$a = new sam();

$a->test();

$b = new b();

$b->test();

$c = new \sam();

$c->test();

?>

use的namespace這裡不用考慮根路徑  namespace後面可以加乙個類名也可以不加。 加類名了下面new的時候就不用再帶路徑了,不加類名,new的時候要帶namespace最後的乙個路徑。還能用as 別名的方法在有衝突的時候。

那些框架當中php 的 use 關鍵字並不是立刻匯入所use的類,它只是宣告某類的完整類名(命名空間::類標示符),而後你在上下文中使用此類時系統才會根據 use 宣告獲取此類的完整類名 然後利用自動載入機制進行載入。

三種使用php namespace的方法

php 5.3中的namespace其實是個不錯的東西,可以簡化程式設計,下面介紹三類在 中 訪問namespace中類的方法 1 引用namespace和類 假設namespace的程式為namespaced class.php namespace christmas daysof class p...

類的使用,物件的使用

一 類的使用 class student school luffycity def eat self print yes defdrink self print drink 檢視print student.dict 增student.teacher gaohui print student.dict...

messagebox的使用(使用整理)

定義 messagebox顯示乙個模態對話方塊,其中包含乙個系統圖示 一組按鈕和乙個簡短的特定於應用程式訊息,如狀態或錯誤的資訊。訊息框中返回乙個整數值,該值指示使用者單擊了哪個按鈕。messagebox hwnd hwnd text,caption pchar type word hwnd 訊息框...