關於命名空間

2021-09-18 02:29:13 字數 1694 閱讀 1639

1.什麼是命名空間

程式語言使用的一種**組織的形式 通過命名空間來分類,區別不同的**功能
2.命名空間的作用

命名空間是用來組織和重用**的[1]  。如同名字一樣的意思,namespace(名字空間),之所以出來這樣乙個東西,是因為人類可用的單詞數太少,並且不同的人寫的程式不可能所有的變數都沒有重名現象,對於庫來說,這個問題尤其嚴重,如果兩個人寫的庫檔案**現同名的變數或函式(不可避免),使用起來就有問題了。為了解決這個問題,引入了名字空間這個概念,通過使用 namespace ***;你所使用的庫函式或變數就是在該名字空間中定義的,這樣一來就不會引起不必要的衝突了。

通常來說,命名空間是唯一識別的一套名字,這樣當物件來自不同的地方但是名字相同的時候就不會含糊不清了。使用擴充套件標記語言的時候,xml的命名空間是所有元素類別和屬性的集合。元素類別和屬性的名字是可以通過唯一xml命名空間來唯一。

在xml裡,任何元素類別或者屬性因此分為兩部分名字,乙個是命名空間裡的名字另乙個是它的本地名。在xml裡,命名空間通常是乙個統一資源識別符(uri)的名字。而uri只當名字用。主要目的是為了避免名字的衝突。(防止命名衝突而設計的程式設計模式)

3.舉例

file1.php

<?php

namespace foo\bar\subnamespace;

const foo = 1;

function foo() {}

class foo

}?>

file2.php

<?php

namespace foo\bar;

include 'file1.php';

const foo = 2;

function foo() {}

class foo

}/* 非限定名稱 */

foo(); // 解析為 foo\bar\foo resolves to function foo\bar\foo

foo::staticmethod(); // 解析為類 foo\bar\foo的靜態方法staticmethod。resolves to class foo\bar\foo, method staticmethod

echo foo; // resolves to constant foo\bar\foo

/* 限定名稱 */

subnamespace\foo(); // 解析為函式 foo\bar\subnamespace\foo

subnamespace\foo::staticmethod(); // 解析為類 foo\bar\subnamespace\foo,

// 以及類的方法 staticmethod

echo subnamespace\foo; // 解析為常量 foo\bar\subnamespace\foo

/* 完全限定名稱 */

\foo\bar\foo(); // 解析為函式 foo\bar\foo

\foo\bar\foo::staticmethod(); // 解析為類 foo\bar\foo, 以及類的方法 staticmethod

echo \foo\bar\foo; // 解析為常量 foo\bar\foo

?>

關於命名空間

為什麼要使用命名空間 在應用程式開發過程中,類和類成員的名稱是豐富的,為了描述乙個具體的物件,需要對類成員進行設計。在設計類和類成員過程中,不可避免的類成員中的方法或者類的名稱會出現相同的情況,這樣就會使類的使用變得複雜,的混亂造成可讀性降低,使用命名空間可以解決這樣的問題。比如,下面的這個例子 n...

關於命名空間

命名空間的作用是為了避免元素命名衝突 命名衝突 在xml中,元素名稱是自定義的,當兩個不同的xml樹在同乙個文件中使用相同的元素名時,就會發生命名衝突,如下 它們都使用到了,xml解析器無法確定如何處理這類衝突 bananas african coffee table 80120 字首 在xml中的...

關於命名空間

命名空間的作用是為了避免元素命名衝突 命名衝突 在xml中,元素名稱是自定義的,當兩個不同的xml樹在同乙個文件中使用相同的元素名時,就會發生命名衝突,如下 它們都使用到了,xml解析器無法確定如何處理這類衝突 table tr tdtd td bananas td tr table table n...