PHP命名空間(namespace)的動(dòng)態(tài)訪(fǎng)問(wèn)及使用技巧
PHP的命名空間(namespace)是PHP 5.3中加入最重要的一個(gè)新特性,這個(gè)概念在C#中已經(jīng)很早就有了,php中的namespace其實(shí)和c#的概念是一樣的。
一.動(dòng)態(tài)訪(fǎng)問(wèn)命名空間的元素
namespace me\poet; function test() { echo '1111'; } $fun = 'test';//不能這么用,最后$fun()無(wú)法動(dòng)態(tài)調(diào)用到test():Fatal error: Call to undefined function test() $fun = '\me\poet\test';//正確 //$fun = 'me\poet\test';//正確 $fun();
也就是說(shuō),動(dòng)態(tài)調(diào)用必須是 限定名稱(chēng) 或 完全限定名稱(chēng)(概念參考:PHP命名空間的使用基礎(chǔ))
二.魔術(shù)常量 和 操作符
namespace me\poet; function test() { echo '1'; } echo __NAMESPACE__; //魔術(shù)常量:命名空間的名稱(chēng)(輸出 me\poet) //namespace操作符:顯式訪(fǎng)問(wèn)當(dāng)前命名空間或子命名空間中的元素,等價(jià)于類(lèi)中的self操作符 \me\poet\test(); namespace\test(); //上兩行代碼等價(jià)。
三.別名、導(dǎo)入 和 全局空間(含多個(gè)例子)
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)命名的好處:若更換域名,只要把前綴名稱(chēng)改了就可以,不影響后面代碼中別名www的使用。
/* 導(dǎo)入 */ include 'hello.class.php'; use \ws\weichen\www; use \Hello; /*--------------------------------------------------------*/ /* 支持多個(gè)use語(yǔ)句 */ use \nihao\shijie as hello, \ws\weichen\www; /*--------------------------------------------------------*/ /* 全局空間:反斜線(xiàn)調(diào)用 */ namespace A\B\C; //這個(gè)函數(shù)是 A\B\C\fopen(); function fopen() { $f = \fopen('demo.txt');//調(diào)用全局fopen函數(shù) return $f; }
- PHP命名空間和自動(dòng)加載類(lèi)
- PHP動(dòng)態(tài)地創(chuàng)建屬性和方法, 對(duì)象的復(fù)制, 對(duì)象的比較,加載指定的文件,自動(dòng)加載類(lèi)文件,命名空間
- PHP自動(dòng)加載autoload和命名空間的應(yīng)用小結(jié)
- PHP命名空間與自動(dòng)加載類(lèi)詳解
- php的命名空間與自動(dòng)加載實(shí)現(xiàn)方法
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類(lèi)詳解
- PHP命名空間與自動(dòng)加載機(jī)制的基礎(chǔ)介紹
- PHP命名空間(Namespace)的使用詳解
- php自動(dòng)加載的兩種實(shí)現(xiàn)方法
- PHP 命名空間和自動(dòng)加載原理與用法實(shí)例分析
相關(guān)文章
Yii統(tǒng)計(jì)不同類(lèi)型郵箱數(shù)量的方法
這篇文章主要介紹了Yii統(tǒng)計(jì)不同類(lèi)型郵箱數(shù)量的方法,涉及Yii數(shù)據(jù)庫(kù)查詢(xún)及字符串的遍歷、截取與判斷相關(guān)操作技巧,需要的朋友可以參考下2016-10-10php定義數(shù)組和使用示例(php數(shù)組的定義方法)
這篇文章主要介紹了php定義數(shù)組和使用示例(php數(shù)組的定義方法),需要的朋友可以參考下2014-03-03Zend Framework實(shí)現(xiàn)留言本分頁(yè)功能(附demo源碼下載)
這篇文章主要介紹了Zend Framework實(shí)現(xiàn)留言本分頁(yè)功能,詳細(xì)分析了Zend Framework實(shí)現(xiàn)留言本所涉及的控制器動(dòng)作,分頁(yè)樣式及模板調(diào)用技巧,并附代碼demo源碼供讀者下載參考,需要的朋友可以參考下2016-03-03PHP實(shí)現(xiàn)微信小程序用戶(hù)授權(quán)的工具類(lèi)示例
這篇文章主要介紹了PHP實(shí)現(xiàn)微信小程序用戶(hù)授權(quán)的工具類(lèi)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03PHP時(shí)間戳格式全部匯總 (獲取時(shí)間、時(shí)間戳)
下面小編就為大家?guī)?lái)一篇PHP時(shí)間戳格式全部匯總 (獲取時(shí)間、時(shí)間戳)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06php實(shí)現(xiàn)12306火車(chē)票余票查詢(xún)和價(jià)格查詢(xún)(12306火車(chē)票查詢(xún))
這篇文章主要介紹了使用php實(shí)現(xiàn)的12306火車(chē)票余票查詢(xún)和價(jià)格查詢(xún)功能,大家參考使用吧2014-01-01php實(shí)現(xiàn)文件編碼批量轉(zhuǎn)換
轉(zhuǎn)換文件編碼,比如原來(lái)是gbk,轉(zhuǎn)換成utf-8的,可以轉(zhuǎn)單個(gè)文件也可以轉(zhuǎn)換整個(gè)目錄的文件,可選是否遞歸目錄2014-03-03讓CodeIgniter數(shù)據(jù)庫(kù)緩存自動(dòng)過(guò)期的處理的方法
按官方的說(shuō)法,緩存設(shè)置后永不過(guò)期,除非你調(diào)用方法主動(dòng)刪除。這篇文章主要介紹了CodeIgniter數(shù)據(jù)庫(kù)緩存自動(dòng)過(guò)期的處理,需要的朋友可以參考下2014-06-06