PHP命名空間(namespace)的動(dòng)態(tài)訪問(wèn)及使用技巧
PHP的命名空間(namespace)是PHP 5.3中加入最重要的一個(gè)新特性,這個(gè)概念在C#中已經(jīng)很早就有了,php中的namespace其實(shí)和c#的概念是一樣的。
一.動(dòng)態(tài)訪問(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)用必須是 限定名稱 或 完全限定名稱(概念參考:PHP命名空間的使用基礎(chǔ))
二.魔術(shù)常量 和 操作符
namespace me\poet;
function test()
{
echo '1';
}
echo __NAMESPACE__; //魔術(shù)常量:命名空間的名稱(輸出 me\poet)
//namespace操作符:顯式訪問(wèn)當(dāng)前命名空間或子命名空間中的元素,等價(jià)于類中的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)命名的好處:若更換域名,只要把前綴名稱改了就可以,不影響后面代碼中別名www的使用。
/* 導(dǎo)入 */
include 'hello.class.php';
use \ws\weichen\www;
use \Hello;
/*--------------------------------------------------------*/
/* 支持多個(gè)use語(yǔ)句 */
use \nihao\shijie as hello, \ws\weichen\www;
/*--------------------------------------------------------*/
/* 全局空間:反斜線調(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)加載類
- PHP動(dòng)態(tài)地創(chuàng)建屬性和方法, 對(duì)象的復(fù)制, 對(duì)象的比較,加載指定的文件,自動(dòng)加載類文件,命名空間
- PHP自動(dòng)加載autoload和命名空間的應(yīng)用小結(jié)
- PHP命名空間與自動(dòng)加載類詳解
- php的命名空間與自動(dòng)加載實(shí)現(xiàn)方法
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類詳解
- PHP命名空間與自動(dòng)加載機(jī)制的基礎(chǔ)介紹
- PHP命名空間(Namespace)的使用詳解
- php自動(dòng)加載的兩種實(shí)現(xiàn)方法
- PHP 命名空間和自動(dòng)加載原理與用法實(shí)例分析
相關(guān)文章
Kindeditor編輯器添加圖片上傳水印功能(php代碼)
這篇文章主要為大家詳細(xì)介紹了Kindeditor編輯器加圖片上傳水印功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
在 Laravel 中 “規(guī)范” 的開發(fā)短信驗(yàn)證碼發(fā)送功能
Laravel是一套簡(jiǎn)潔、優(yōu)雅的PHP Web開發(fā)框架(PHP Web Framework)。接下來(lái)通過(guò)本文給大家分享在 Laravel 中 “規(guī)范” 的開發(fā)短信驗(yàn)證碼發(fā)送功能,需要的朋友參考下吧2017-10-10
php實(shí)現(xiàn)網(wǎng)站插件機(jī)制的方法
這些天想作一個(gè)在網(wǎng)站中實(shí)現(xiàn)插件的功能,谷歌了一下,發(fā)現(xiàn)一篇文章感覺對(duì)我?guī)椭艽?,帖出?lái)和大家分享,廢話不多說(shuō),直接帖出代碼供大家分析.2009-11-11
用PHP做了一個(gè)領(lǐng)取優(yōu)惠券活動(dòng)的示例代碼
這篇文章主要介紹了用PHP做了一個(gè)領(lǐng)取優(yōu)惠券活動(dòng)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
PHP+shell腳本操作Memcached和Apache Status的實(shí)例分享
這篇文章主要介紹了PHP環(huán)境下使用shell腳本操作Memcached和Apache Status的方法,分別還可以控制Memcached進(jìn)程的啟動(dòng)以及記錄Apache Status數(shù)據(jù)到數(shù)據(jù)庫(kù),需要的朋友可以參考下2016-03-03
Laravel統(tǒng)一封裝接口返回狀態(tài)實(shí)例講解
這篇文章主要介紹了Laravel統(tǒng)一封裝接口返回狀態(tài)實(shí)例講解,封裝接口返回狀態(tài)有利于前后端分離項(xiàng)目的合作開發(fā),有正好需要的同學(xué)可以研究下2021-03-03

