最近總結了下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 訊息框...