命名空間提供了一種從邏輯上組織類別的方式,防止命名衝突。
幾種常見語言
C++
命名空間是可以嵌套的
嵌套的命名空間是指定義在其他命名空間中的命名空間。嵌套的命名空間是一個嵌套的作用域,內層命名空間聲明的名字將隱藏外層命名空間聲明的同名成員:
<code><span>int</span> x = <span>20</span>; <span>namespace</span> outer { <span>int</span> x = <span>10</span>; <span>namespace</span> inner { <span>int</span> z = x; } } <span>int</span> main() { std::cout << outer::inner::z; <span>// 输出10 </span><span>return</span><span>0</span>; } </code>
C#
嵌套的命名空間
命名空間聲明中聲明命名空間,各命名空間以”.”分隔。
例如:
<code>namespace N1.N2 { class A {} class B {} } 在语义上等效于 namespace N1 { namespace N2 { class A {} class B {} } } </code>
Java
<code><span>package</span> cn.org.web3d.x3dpad</code>
Java中的命名空間意味著你只要擁有一個獨立的頂級域名,就可以保證自己專案的絕對唯一性。
Objective-C
在Objective-C應用中的所有類別名稱都必須是全域唯一的。命名一直是Objective-C的硬傷,和那些優雅的語言比較。蘋果官方建議兩個字母作為前綴的類別名稱是為官方的庫和框架準備的,而對於作為第三方開發者,官方建議使用3個或更多的字母作為前綴去命名我們的類別。
PHP
<code><span>namespace</span> Vendor\Package\<span>...</span>..</code>
它強調第一級Vendor就應該是唯一性標識,意味著你要擁有一個{Vendor}.com 的頂級域名,才可以保證自己項目的絕對唯一性。例如,當我想到這一點時,我立刻去註冊了一個meanir.com的網域來防身。
以上就介紹了幾種常見語言的命名空間Namespace特性,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。