日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解PHP中的命名空間

瀏覽:176日期:2022-09-07 14:22:48

命名空間其實(shí)早在PHP5.3就已經(jīng)出現(xiàn)了。不過(guò)大部分同學(xué)可能在各種框架的使用中才會(huì)接觸到命名空間的內(nèi)容,當(dāng)然,現(xiàn)代化的開(kāi)發(fā)也都離不開(kāi)這些能夠快速產(chǎn)出的框架。這次我們不從框架的角度,僅從簡(jiǎn)單的代碼角度來(lái)解析一下命名空間的概念和使用。

首先,我們要定義命名空間是個(gè)什么東西。

其實(shí)就像操作系統(tǒng)的目錄一樣,命名空間就是為了解決類(lèi)似于操作系統(tǒng)中同一個(gè)文件夾不能有相同的文件名一樣的問(wèn)題。假設(shè)我們只有一個(gè)文件,一個(gè)目錄,那么在這個(gè)目錄中,是不能有兩個(gè)完全相同的文件的。如果有這樣名稱(chēng)完全相同的文件,那么操作系統(tǒng)也不知道我們到底應(yīng)該打開(kāi)的是哪一個(gè)文件。同理,在一個(gè)PHP文件中,我們也不能起相同名稱(chēng)的函數(shù)或者類(lèi)名,PHP也不知道我們到底要調(diào)用的是哪一個(gè)函數(shù)或者類(lèi)。

理解了上述內(nèi)容之后,再來(lái)看命名空間的語(yǔ)法,其實(shí)非常像我們的目錄的定義。

namespace ABC;

這個(gè)命名空間的定義就是指出了當(dāng)前命名空間是ABC。就像是C:ABC這樣一個(gè)文件夾一樣。光說(shuō)不練假把式,直接上代碼來(lái)看看:

// file1.phpnamespace FILE1;const CONST_A = 2;function testA(){ echo ’FILE1testA()’, PHP_EOL;}class objectA{ function test(){echo ’FILE1ObjectA’, PHP_EOL; }}

// file2.phpnamespace FILE2;const CONST_A = 3;function testA(){ echo ’FILE2testA()’, PHP_EOL;}class objectA{ function test(){echo ’FILE2ObjectA’, PHP_EOL; }}

我們?cè)趎amespace目錄下創(chuàng)建了這兩個(gè)php文件,函數(shù)和類(lèi)名都是一樣的,但定義了不同的命名空間,一個(gè)是FILE1,一個(gè)是FILE2。

namespace A;include ’namespace/file1.php’;include ’namespace/file2.php’;use FILE1, FILE2;use FILE1objectA as objectB;const CONST_A = 1;function testA(){ echo ’AtestA()’, PHP_EOL;}class objectA{ function test(){echo ’AObjectA’, PHP_EOL; }}// 當(dāng)前命名空間echo CONST_A, PHP_EOL; // 1testA(); // AtestA()$oA = new objectA();$oA->test(); // AObjectA// FILE1echo FILE1CONST_A, PHP_EOL; // 2FILE1testA(); // FILE1testA()$oA = new FILE1objectA();$oA->test(); // FILE1ObjectA$oB = new objectB();$oB->test(); // FILE1ObjectA// FILE2echo FILE2CONST_A, PHP_EOL; // 3FILE2testA(); // FILE2testA()$oA = new FILE2objectA();$oA->test(); // FILE2ObjectA

在測(cè)試代碼中,我們又定義了當(dāng)前的命名空間為A。并include了file1.php和file2.php。并在這個(gè)文件中同時(shí)也定義了與file1.php和file2.php中相同的函數(shù)和類(lèi)名。接下來(lái)我們依次調(diào)用這些靜態(tài)變量、函數(shù)和類(lèi)。

在默認(rèn)情況下,靜態(tài)變量、函數(shù)、類(lèi)調(diào)用的是當(dāng)前命名空間下的內(nèi)容 在使用了FILE1和FILE2之后,調(diào)用的是就是指定命名空間下的內(nèi)容 需要使用use引入命名空間,否則無(wú)法使用命名空間里的內(nèi)容 use中可以使用as關(guān)鍵字為命名空間或者其中的類(lèi)指定別名

命名空間的使用其實(shí)就是這么的簡(jiǎn)單。可以看出我們?cè)诓煌拿臻g中就可以使用相同的函數(shù)或者類(lèi)名了。這一點(diǎn)正是各類(lèi)現(xiàn)代化開(kāi)發(fā)框架的基礎(chǔ)。同時(shí)也是composer能夠?qū)崿F(xiàn)的最主要的原因之一。

接下來(lái),我們嘗試一個(gè)問(wèn)題是否符合我們的預(yù)期,那就是兩個(gè)文件定義相同的命名空間是否能夠定義相同的類(lèi)名呢?

// file1-1.phpnamespace FILE1;const CONST_A = 1.1;function testA(){ echo ’FILE1-1testA()’, PHP_EOL;}class objectA{ function test(){echo ’FILE1-1ObjectA’, PHP_EOL; }}

我們定義了一個(gè)file1-1.php,并且使用了和file1.php相同的FILE1命名空間。然后和file1.php一起include到測(cè)試代碼中。

include ’namespace/file1.php’;include ’namespace/file1-1.php’; // Cannot redeclare FILE1testA()

好吧,在運(yùn)行時(shí)直接就報(bào)錯(cuò),不能重復(fù)定義同名的函數(shù)名。如果注釋掉函數(shù),那么會(huì)繼續(xù)報(bào)類(lèi)名不能重復(fù)。我們?cè)俣x一個(gè)file1-2.php,這次還是使用FILE1這個(gè)命名空間,但是內(nèi)容不一樣了。

// file1-2.phpnamespace FILE1;const CONST_A = 1.2;function testA1_2(){ echo ’FILE1-2testA()’, PHP_EOL;}class objectA1_2{ function test(){echo ’FILE1-2ObjectA’, PHP_EOL; }}

這樣當(dāng)然就沒(méi)問(wèn)題啦。這兩個(gè)文件在同一個(gè)命名空間下,但是卻有著不同的能力,這樣是完全OK的操作。

include ’namespace/file1.php’;include ’namespace/file1-2.php’;use FILE1;// FILE1echo FILE1CONST_A, PHP_EOL; // 2FILE1testA(); // FILE1testA()$oA = new FILE1objectA();$oA->test(); // FILE1ObjectA// FILE1_2echo FILE1CONST_A, PHP_EOL; // 3FILE1testA1_2(); // FILE1-2testA()$oA = new FILE1objectA1_2();$oA->test(); // FILE1-2ObjectA

測(cè)試代碼: github.com/zhangyue050…

以上就是詳解PHP中的命名空間的詳細(xì)內(nèi)容,更多關(guān)于PHP 命名空間的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: PHP
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩视频免费| 伊人久久一区| 亚洲一区日韩在线| 欧美69视频| 精品国产免费人成网站| 国产欧美一区二区三区精品观看 | 日韩久久99| 精品1区2区3区4区| 国产精品99免费看| 亚洲大全视频| 亚洲激情久久| 久久亚洲影院| 视频在线观看一区| 国产精品sss在线观看av| 你懂的网址国产 欧美| 日欧美一区二区| 国产精品伦一区二区| 69堂精品视频在线播放| 日本视频中文字幕一区二区三区| 国产欧美一区二区三区国产幕精品| 日韩av黄色在线| 国产欧美高清视频在线| 青草国产精品| 国产伦理久久久久久妇女| 欧美视频久久| 欧美a在线观看| 91精品丝袜国产高跟在线| 日韩高清二区| 无码日韩精品一区二区免费| 欧美日一区二区三区在线观看国产免| 视频一区日韩| 国产一区二区三区视频在线| 九九久久国产| 国产一区久久| 亚洲免费在线| 亚洲手机在线| 综合在线一区| 日本麻豆一区二区三区视频| 精品一区二区三区亚洲| 精品网站aaa| 日韩一区二区久久| 亚洲欧美日韩国产综合精品二区| 婷婷国产精品| 美女国产一区| 97精品国产99久久久久久免费| 精品视频一区二区三区在线观看 | 久久福利毛片| 亚洲另类黄色| 福利视频一区| 欧美日韩免费观看视频| 蜜臀久久99精品久久久画质超高清 | 国产一区 二区| 97精品一区| 国产一区欧美| 99久久婷婷| 久久国产生活片100| 美女视频网站久久| 韩日一区二区三区| 久久亚洲电影| 国产亚洲电影| 精品久久在线| 日韩欧美看国产| 亚洲综合图色| 老司机精品视频网| 亚洲高清久久| 日韩高清欧美激情| 蜜桃视频欧美| 日本精品另类| 日韩欧美精品综合| 国产日韩一区二区三区在线| 麻豆mv在线观看| 丝袜美腿亚洲一区| 麻豆成人91精品二区三区| 在线观看精品| 天堂久久av| 国产a久久精品一区二区三区| 国产欧美一区二区精品久久久 | 深夜福利一区| 久久精品成人| 国产丝袜一区| 在线精品国产亚洲| 91视频一区| 视频一区二区三区入口| 不卡一二三区| 天堂久久av| 狠狠色狠狠色综合日日tαg| 国产日韩免费| 三级欧美韩日大片在线看| 国产精品a级| 精品视频91| 日本久久一区| 久久久成人网| 高清精品久久| 日韩高清一区在线| 视频在线观看一区| 国产传媒在线| 天堂√8在线中文| 日韩欧美中文字幕在线视频| 日韩精品永久网址| 电影91久久久| 日韩欧美四区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲精品欧美| 中文精品视频| 日韩啪啪电影网| 久久av国产紧身裤| 日韩在线黄色| 好看的av在线不卡观看| 欧美片第1页| 国产精品22p| 国产精品久久久久久久免费软件| 免费中文字幕日韩欧美| 女人av一区| 亚洲国产欧美日本视频| 国产精品亚洲片在线播放| 日韩精品免费视频人成| 99在线精品视频在线观看| 亚洲性视频h| 日本а中文在线天堂| 亚洲精品视频一二三区| 欧美.日韩.国产.一区.二区 | 亚洲毛片在线| 伊人成人在线视频| 久久美女性网| 超碰成人av| 久久99高清| 国产欧美一区二区三区米奇| 婷婷亚洲五月| 国产69精品久久| 日本不卡高清| 久久国产福利| 国产韩日影视精品| 999国产精品视频| 婷婷国产精品| 久久美女精品| 亚洲女同av| 国产aa精品| 日韩av有码| 福利视频一区| 精品久久91| 精品久久福利| 国内精品亚洲| 日韩精品午夜| 久久人人88| 在线日韩中文| 激情欧美亚洲| 日韩在线卡一卡二| 在线精品福利| 日韩欧美美女在线观看| 国产精品极品在线观看| 久久丁香四色| 久久婷婷久久| 欧美~级网站不卡| 国产精品毛片在线看| 免费日韩av片| 中文字幕av亚洲精品一部二部| 在线一区免费观看| 免费国产自久久久久三四区久久| 亚洲人成在线网站| 久久在线免费| 国产精品日本| 国产视频一区在线观看一区免费| 久久夜色精品| 日韩国产欧美三级| 国产一区二区三区视频在线| sm捆绑调教国产免费网站在线观看| 欧美午夜精彩| 久久不射中文字幕| 国产精品欧美三级在线观看 | 日日夜夜免费精品| 久久99精品久久久久久园产越南 | 久久精品av麻豆的观看方式| 久久a爱视频| 午夜精品一区二区三区国产| 蜜臀av一区二区在线免费观看| 国产精品色在线网站| 国产aⅴ精品一区二区三区久久| 国产一区日韩一区| 蜜桃一区二区三区在线观看| 久久精品免视看国产成人| 色老板在线视频一区二区| 蜜桃传媒麻豆第一区在线观看| 99视频+国产日韩欧美| 国产精品大片| 秋霞影视一区二区三区| 亚洲日本欧美| 亚洲成a人片| 亚洲三级观看| 亚洲一级淫片| 国产成人精品免费视| 91中文字幕精品永久在线| 日韩在线播放一区二区| 国产精品中文字幕制服诱惑| 日韩啪啪电影网| 99视频精品视频高清免费| 视频一区二区欧美| 另类专区亚洲| 欧美女激情福利| 国产99在线| 中文字幕av亚洲精品一部二部 |