您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)怎么動態(tài)訪問PHP命名空間,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
PHP的命名空間(namespace)是PHP 5.3中加入最重要的一個新特性,這個概念在C#中已經(jīng)很早就有了,php中的namespace其實和c#的概念是一樣的。
一.動態(tài)訪問命名空間的元素
namespace me\poet; function test() { echo '1111'; } $fun = 'test';//不能這么用,最后$fun()無法動態(tài)調(diào)用到test():Fatal error: Call to undefined function test() $fun = '\me\poet\test';//正確 //$fun = 'me\poet\test';//正確 $fun();
也就是說,動態(tài)調(diào)用必須是 限定名稱 或 完全限定名稱(概念參考:PHP命名空間的使用基礎(chǔ))
二.魔術(shù)常量 和 操作符
namespace me\poet; function test() { echo '1'; } echo __NAMESPACE__; //魔術(shù)常量:命名空間的名稱(輸出 me\poet) //namespace操作符:顯式訪問當(dāng)前命名空間或子命名空間中的元素,等價于類中的self操作符 \me\poet\test(); namespace\test(); //上兩行代碼等價。
三.別名、導(dǎo)入 和 全局空間(含多個例子)
namespace ws\weichen\www; use ws\weichen\www as poet;//定義別名poet //use ws\weichen\www; //不加as,則取最后的作為別名(www) function demo() { echo '1'; } \ws\weichen\www\demo(); poet\demo(); //www\demo(); //不加as的情況,則這樣調(diào)用
以上三行代碼效果一樣。
按規(guī)則(ws\weichen\www)命名的好處:若更換域名,只要把前綴名稱改了就可以,不影響后面代碼中別名www的使用。
/* 導(dǎo)入 */ include 'hello.class.php'; use \ws\weichen\www; use \Hello; /*--------------------------------------------------------*/ /* 支持多個use語句 */ use \nihao\shijie as hello, \ws\weichen\www; /*--------------------------------------------------------*/ /* 全局空間:反斜線調(diào)用 */ namespace A\B\C; //這個函數(shù)是 A\B\C\fopen(); function fopen() { $f = \fopen('demo.txt');//調(diào)用全局fopen函數(shù) return $f; }
看完上述內(nèi)容,你們對怎么動態(tài)訪問PHP命名空間有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。