php命名空間是在5.3版本後加入的,命名空間反過來就是空間命名,在這裡的空間命名就像window下的資料夾命名,命名空間用關鍵字namespace來定義。在這裡用資料夾舉三個例子,比如相對於test資料夾下面的home.txt檔案,他相對於資料夾的路徑是 test/home.txt,當前檔案下他的檔名是 home.txt,他的絕對路徑是/test/home.txt.
命名空間也是用三種方式來表示:
完全限定符\test\home,像資料夾中的絕對路徑;
限定名稱 test\home,像相對檔案的目錄路徑;
非限定名稱 home,像前面的直接使用檔名。
一直以來不太理解官方的意思,今天自己做了測試,表達一下自己的理解:
我認為命名空間就好像地球,定義命名空間就像是對國家的定義,使用命名空間就像是出國,第三個比喻可能不是很恰當,上個例子:
下面是當前訪問程式**:
結果:
總結:定義命名空間就好像告訴我們現在在**,上面三個檔案各自定義不同的命名空間,就好像三個不同的國家,他們中的物品不可能被另乙個國家的人使用,前提是必須被帶到另乙個國家,這裡就用到了使用命名空間,官方表示 類、函式、常量都受命名空間的影響,但是我這裡卻沒有作用,只對類有影響(下面**
<?php上面**的結果是: usa\my::who/** * 當前檔名 word.php
*/namespace japan;
use usa\my;
require_once("china.php");
require_once("usa.php");
// echo ip,'
';// echo myfunction(),'
';echo my::who(),'
';
如果定義命名空間為china:
<?php結果為:/** * 當前檔名 word.php
*/namespace china;
use usa\my;
require_once("china.php");
require_once("usa.php");
echo ip,'
';echo myfunction(),'
';echo my::who(),'
';
192.168.0.17根據以上總結,命名空間的定義就是國家的定義,在程式中就像乙個大的**庫,如果想使用另乙個**庫的類,就需要使用命名空間;china\myfunction
usa\my::who
命名空間要求:
命名空間前面不要出現任何字元(包括空白)
什麼是命名空間
c 中引入命名空間的主要是為了處理程式中常見的命名衝突,它是由ansi c 引入的可以由使用者命名的作用域。所謂命名空間,實際上就是乙個由程式設計者命名的記憶體區域 程式設計者可以根據需要指定一些有名字的空間域,把一些全域性實體分別放在各個命名空間中,從而與其它全域性實體分隔開來。如 namespa...
什麼是命名空間
問題 學習過c,然後再學c 的人可能會這麼問,我 include之後,不就是把頭檔案拉進來了嗎,而cin cout等函式不就是iostream.h裡面的函式嗎,我使用cin cout時,編譯器為什麼會說 error 未定義標示符 呢?解決方法 這樣寫 include using namespace ...
C 基礎 什麼是命名空間
命名空間是類的邏輯分組,它組織成乙個層次結構 邏輯樹。這個樹的根是system。名字空間是為了防止名字汙染在標準c 中引入的。它可以將其中定義的名字隱藏起來,不同的名字空間中可以有相同的名字而互不干擾,使用時用域操作符 來引用。namespace 名字 在應用的時候 使用這些資料和函式名稱太麻煩 給...