什麼是php命名空間

2022-01-19 19:53:34 字數 1544 閱讀 8774

php命名空間是在5.3版本後加入的,命名空間反過來就是空間命名,在這裡的空間命名就像window下的資料夾命名,命名空間用關鍵字namespace來定義。在這裡用資料夾舉三個例子,比如相對於test資料夾下面的home.txt檔案,他相對於資料夾的路徑是 test/home.txt,當前檔案下他的檔名是 home.txt,他的絕對路徑是/test/home.txt.

命名空間也是用三種方式來表示:

完全限定符\test\home,像資料夾中的絕對路徑;

限定名稱 test\home,像相對檔案的目錄路徑;

非限定名稱 home,像前面的直接使用檔名。

一直以來不太理解官方的意思,今天自己做了測試,表達一下自己的理解:

我認為命名空間就好像地球,定義命名空間就像是對國家的定義,使用命名空間就像是出國,第三個比喻可能不是很恰當,上個例子:

下面是當前訪問程式**:

結果:

總結:定義命名空間就好像告訴我們現在在**,上面三個檔案各自定義不同的命名空間,就好像三個不同的國家,他們中的物品不可能被另乙個國家的人使用,前提是必須被帶到另乙個國家,這裡就用到了使用命名空間,官方表示 類、函式、常量都受命名空間的影響,但是我這裡卻沒有作用,只對類有影響(下面**

<?php 

/** * 當前檔名 word.php

*/namespace japan;

use usa\my;

require_once("china.php");

require_once("usa.php");

// echo ip,'

';// echo myfunction(),'

';echo my::who(),'

';

上面**的結果是: usa\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 名字 在應用的時候 使用這些資料和函式名稱太麻煩 給...