久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP命令空間namespace及use的用法小結(jié)

命名空間一個(gè)最明確的目的就是解決重名問(wèn)題,PHP中不允許兩個(gè)函數(shù)或者類出現(xiàn)相同的名字,否則會(huì)產(chǎn)生一個(gè)致命的錯(cuò)誤。這篇文章主要介紹了PHP命令空間namespace及use的用法實(shí)踐總結(jié),需

命名空間一個(gè)最明確的目的就是解決重名問(wèn)題,PHP中不允許兩個(gè)函數(shù)或者類出現(xiàn)相同的名字,否則會(huì)產(chǎn)生一個(gè)致命的錯(cuò)誤。這種情況下只要避免命名重復(fù)就可以解決,最常見(jiàn)的一種做法是約定一個(gè)前綴。

使用namespace的目的:

團(tuán)隊(duì)合作項(xiàng)目時(shí),避免與團(tuán)隊(duì)其它成員新建的類發(fā)生沖突;個(gè)人負(fù)責(zé)項(xiàng)目時(shí),避免前后新建的類發(fā)生沖突;

據(jù)個(gè)人理解,用到所需要的類時(shí),需要先require或include引入,所以會(huì)發(fā)生類重定義的錯(cuò)誤的前提是:兩個(gè)相同命名的類都有被引入。目前有些php框架會(huì)自動(dòng)加載(即include)所有新建的model類,所以為了避免你新建的model類和項(xiàng)目框架原生的核心類發(fā)生重名沖突,采用了namespace。(想了想,與團(tuán)隊(duì)成員新建的類產(chǎn)生沖突應(yīng)該通過(guò)溝通避免,即使事發(fā)后也應(yīng)該重新調(diào)整類名即時(shí)維護(hù),避免后期造成因?yàn)閷?duì)類的理解混淆而帶來(lái)維護(hù)上的復(fù)雜度提高)

結(jié)合使用方法來(lái)進(jìn)一步理解它的使用目的吧。

namespace的使用方法:

為了進(jìn)行測(cè)試,我將創(chuàng)建3個(gè)文件:1.php和name.php(此文件用來(lái)執(zhí)行測(cè)試),后面將不再說(shuō)明,請(qǐng)自行注意代碼的變化。

1.namespace后命名的定義不區(qū)分大小寫

namespace one;
namespace One;
namespace ONE;

如上寫法都可以,選擇一種作為自己的規(guī)范即可。(后面代碼我采用第一種進(jìn)行測(cè)試哈)

2. 沒(méi)有定義命名空間,就理解為使用頂級(jí)命名空間。new類時(shí),可以在類前加上反斜杠\,也可以不加。

//1.php 
class Person{
 function __construct(){
  echo 'I am one!';
 }
}
//name.php
require_once './1.php';
new Person(); //輸出 I am one!;
new \Person(); //輸出 I am one!; 

3. new類時(shí),帶上命名空間時(shí),之間一定用反斜杠字符,而不是順斜杠。

記憶方法:按找%中斜杠的順序理解為順斜杠。(有時(shí)說(shuō)反斜杠,自己都不知道是哪種方向,以前按自左向右上升方向這種方向記憶,現(xiàn)在感覺(jué)這個(gè)太不靠譜了)

//name.php
require_once './1.php';
new /Person(); // 代碼報(bào)錯(cuò):Parse error: syntax error, unexpected '/'

4.類在指定命名空間下, new類時(shí),一定要帶上指定的命名空間。

沒(méi)有帶上指定的命名空間,按照第2點(diǎn),php就會(huì)從頂級(jí)命名空間里找這個(gè)類。切記:這里不能按照頂級(jí)命名空間包含一切其它的命名空間來(lái)理解。而應(yīng)該將頂級(jí)命名空間完完全全與其他命名空間區(qū)分開(kāi)。

//1.php 
namespace one;
class Person{
 function __construct(){
  echo 'I am one!';
 }
}
//name.php
require_once './1.php';
new \one\Person(); //輸出 I am one!;
new \Person(); //代碼報(bào)錯(cuò):Fatal error: Class 'Person' not found

可以舉個(gè)這個(gè)通俗例子來(lái)理解:帶上指定命名空間代表某人的蘋果(在他手里),頂級(jí)命名空間代表蘋果箱里的蘋果(在箱子里)。現(xiàn)在要找某人的蘋果,就將某人的命名空間帶上,否則就會(huì)從箱子里找某人的蘋果,結(jié)果當(dāng)然是找不到。

5.命名空間聲明后的代碼便屬于這個(gè)命名空間,即使有include或require也不影響(重點(diǎn)是對(duì)后半句的理解,具體看代碼)。

//1.php 
namespace one;
class Person{
 function __construct(){
  echo 'I am one!';
 }
}
//name.php
namespace test;
require './1.php'; 
new \one\Person(); //輸出 I am one!;
new Person(); //這里結(jié)果會(huì)是什么呢,猜猜看

最后一行結(jié)果報(bào)錯(cuò):

Fatal error: Class 'test\Person' not found

首先,這里與第2點(diǎn)比較一下:

第2點(diǎn),我說(shuō),沒(méi)有命名空間時(shí),new類時(shí),有沒(méi)有反斜杠意義一樣。

在這里,有了命名空間,有和沒(méi)有反斜杠的意義就不一樣了。

最后一行換成

new \Person(); 

結(jié)果報(bào)錯(cuò):

Fatal error: Class 'Person' not found

接著,就說(shuō)說(shuō)當(dāng)前這點(diǎn)。

我們可以發(fā)現(xiàn),最后一行代碼對(duì)應(yīng)的命名空間為test,并沒(méi)有受到require文件里的命名空間的影響。

進(jìn)一步加強(qiáng)驗(yàn)證,我修改了name.php文件如下:

//name.php
namespace test;
require './1.php'; 
class Person{
 function __construct(){
  echo 'I am test!';
 }
}
new \one\Person(); //輸出 I am one!;
new Person(); //這里結(jié)果會(huì)是什么,自己猜猜看 

最后,這個(gè)例子刷新了我對(duì)require的認(rèn)識(shí)了。

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要介紹了PHP定義字符串的四種方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
下面小編就為大家分享一篇php 替換文章中的圖片路徑,下載圖片到本地服務(wù)器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
下面小編就為大家分享一篇PHP給源代碼加密的幾種方法匯總(推薦),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
下面小編就為大家分享一篇php打開(kāi)本地exe程序,js打開(kāi)本地exe應(yīng)用程序,并傳遞相關(guān)參數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
這篇文章主要介紹了PHP類的反射來(lái)實(shí)現(xiàn)依賴注入過(guò)程以及相關(guān)知識(shí)點(diǎn)分享,對(duì)此有興趣的朋友跟著小編學(xué)習(xí)下吧。
php遍歷一個(gè)文件夾內(nèi)的所有文件和文件夾,并刪除所有文件夾和子文件夾下的所有文件的代碼,通過(guò)遞歸方式實(shí)現(xiàn)達(dá)到清空一個(gè)目錄的效果。本文給大家分享實(shí)例代碼,需要的朋友參考
主站蜘蛛池模板: 久久久久国产一区二区三区不卡 | 草樱av| 成人亚洲片 | 国产精品美女视频 | 精品美女 | 欧美一区二区三区视频在线播放 | 亚洲精品久久久久久一区二区 | 在线免费观看一区二区 | 国产一区二区高清在线 | 日韩精品一区二区三区中文在线 | 成人羞羞国产免费视频 | 欧美精品久久久 | 色一阁 | 亚洲精品久久久久中文字幕欢迎你 | 亚洲精品一区在线观看 | 欧美亚洲国产日韩 | 国产乱人伦 | 中文字幕第九页 | 精品免费国产视频 | 亚洲国产成人av好男人在线观看 | 影音先锋中文字幕在线观看 | 热99| 国产精品网址 | 亚洲第一色站 | 日韩一区二区三区在线 | 精品国产一级 | 精品久久久久久亚洲国产800 | 精品视频免费 | 欧美精品一二区 | 成av人电影在线 | 九九色综合 | 欧美黄在线观看 | 夜夜爽99久久国产综合精品女不卡 | 国产成人自拍一区 | 夜夜操天天艹 | 国产成人叼嘿视频在线观看 | 免费看一区二区三区 | 亚洲一区二区免费看 | 亚洲精品毛片av | 欧美视频成人 | 欧美日韩精品一区 |