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

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

詳解PHP中的命名空間

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

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

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

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

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

namespace ABC;

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

// 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; }}

我們在namespace目錄下創(chuàng)建了這兩個php文件,函數(shù)和類名都是一樣的,但定義了不同的命名空間,一個是FILE1,一個是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

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

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

命名空間的使用其實就是這么的簡單。可以看出我們在不同的命名空間中就可以使用相同的函數(shù)或者類名了。這一點正是各類現(xiàn)代化開發(fā)框架的基礎(chǔ)。同時也是composer能夠?qū)崿F(xiàn)的最主要的原因之一。

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

// 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; }}

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

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

好吧,在運行時直接就報錯,不能重復(fù)定義同名的函數(shù)名。如果注釋掉函數(shù),那么會繼續(xù)報類名不能重復(fù)。我們再定義一個file1-2.php,這次還是使用FILE1這個命名空間,但是內(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)然就沒問題啦。這兩個文件在同一個命名空間下,但是卻有著不同的能力,這樣是完全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

測試代碼: github.com/zhangyue050…

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

標簽: PHP
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
蜜桃成人精品| 日本在线不卡视频| 欧美激情在线精品一区二区三区| 亚洲激情另类| 水野朝阳av一区二区三区| 激情91久久| 亚洲1区在线观看| 久久婷婷av| 亚洲香蕉视频| 国产高清精品二区| www.51av欧美视频| 国产亚洲在线| 亚洲专区视频| 蜜桃视频在线观看一区二区| 久久天堂精品| 成午夜精品一区二区三区软件| 欧美羞羞视频| 中文精品电影| 韩国精品主播一区二区在线观看| 中国女人久久久| 麻豆一区二区在线| 免费成人网www| 国产欧美一区二区三区精品观看| 色爱综合av| 久久精品亚洲欧美日韩精品中文字幕| 欧美日韩国产一区精品一区| 国产欧美午夜| 99国产精品99久久久久久粉嫩| 亚洲欧洲日韩精品在线| 国产精品麻豆成人av电影艾秋| 最新中文字幕在线播放| 美女精品在线| 色一区二区三区| 国产伦精品一区二区三区视频| 欧美一区二区三区高清视频| 国产伦精品一区二区三区视频| 激情国产在线| 日韩在线观看一区二区| jizzjizz中国精品麻豆| 日韩影院精彩在线| 色黄视频在线观看| 欧美经典一区| 日本视频中文字幕一区二区三区| 香蕉久久99| 国内精品亚洲| 国产日韩欧美三区| 丝瓜av网站精品一区二区| 国产精品欧美三级在线观看| 在线综合亚洲| 亚洲自啪免费| 欧美1区免费| 亚洲深夜视频| 国产一区2区在线观看| 国产精品分类| 欧美日韩一区二区三区四区在线观看 | 国产99亚洲| 国产欧美一区二区三区精品观看 | 日韩激情一二三区| 亚洲欧美日韩在线观看a三区| 久久精品动漫| 久久国产电影| 国产 日韩 欧美一区| 国产高清精品二区| 麻豆精品久久久| 成人在线超碰| 日韩不卡在线| 99国产精品免费视频观看| 99久久久久国产精品| 国内激情久久| 六月婷婷一区| 日韩精品一区二区三区中文 | 亚洲一区日韩在线| 三级在线观看一区二区| 一本色道精品久久一区二区三区| 久久五月天小说| 亚洲欧洲一区| 亚洲精品亚洲人成在线观看| 久久激五月天综合精品| 美女精品久久| 欧美在线资源| 亚洲小说春色综合另类电影| 国产亚洲欧美日韩精品一区二区三区 | 欧美亚洲国产一区| 国产亚洲毛片在线| 色狠狠一区二区三区| 国产精品羞羞答答在线观看| 精品国产乱码久久久| 日韩国产欧美| 亚洲欧美日本视频在线观看| 国产欧美日韩亚洲一区二区三区| 国产欧美日韩一区二区三区四区 | 亚洲欧美日本日韩| 国产伦理一区| 久久一区二区三区电影| 免费在线观看不卡| 国产精品久久久久9999高清| 九九综合九九| 久久精品超碰| 女人天堂亚洲aⅴ在线观看| 欧美亚洲tv| 欧美亚洲在线日韩| 国产精品mm| 国产精品一区高清| 免费av一区| 精品久久久网| 亚洲一区二区三区在线免费| 麻豆91精品视频| 亚洲字幕久久| 欧美福利一区| 精品国产亚洲一区二区三区在线 | 88久久精品| 国产va在线视频| 日韩av在线免费观看不卡| 久久久久国产精品一区三寸| 欧美视频久久| 久久午夜影视| 九一成人免费视频| 色婷婷色综合| 久久99精品久久久野外观看| 亚洲资源网站| 免费美女久久99| 成人av二区| 美女网站视频一区| 国产精品亚洲一区二区三区在线观看| 久久国产三级| 日韩一区精品| 美女网站久久| 伊人精品在线| 亚洲精品网址| 男女精品网站| 亚洲久久一区| 亚洲三级毛片| 日韩欧美中文字幕电影| 免费在线观看视频一区| 欧美网站在线| 国产一级一区二区| 人人爽香蕉精品| 国产女优一区| 香蕉久久国产| 免费国产亚洲视频| 免费在线观看一区二区三区| 蜜桃国内精品久久久久软件9| 午夜欧美在线| 免费日韩视频| 亚洲日韩视频| 国产精品三p一区二区| 国产精品国码视频| 成人欧美一区二区三区的电影| 精品三级久久| 亚洲自拍另类| 国产视频一区二| 国产精品久久久久蜜臀| 色综合五月天| 99国产精品99久久久久久粉嫩| 亚洲精品综合| 国产一区二区亚洲| 天堂中文av在线资源库| 99久久精品网站| 久久国产99| 国产精品极品| 亚洲在线网站| 国产精品一区毛片| 欧美亚洲国产激情| 7777精品| 欧美二区视频| 国产精品777777在线播放 | 免费日韩精品中文字幕视频在线| 亚洲香蕉久久| 亚洲精品福利电影| 亚洲开心激情| 久久久久久网| 午夜久久av | 国产va免费精品观看精品视频| 黑丝一区二区三区| 亚洲人成在线网站| 国产一区二区三区国产精品| 欧美日韩亚洲一区二区三区在线 | 美女被久久久| 亚洲欧美日韩在线观看a三区| 在线看片国产福利你懂的| 麻豆免费精品视频| 国产高潮在线| 国产在线看片免费视频在线观看| 国产精品视频一区二区三区 | 成人午夜在线| 神马午夜在线视频| 美女精品一区| 午夜日韩av| 免播放器亚洲一区| 91精品麻豆| 久久国产免费看| 成人在线视频中文字幕| 国产传媒在线观看| 激情欧美日韩一区| 99国产精品视频免费观看一公开| 婷婷久久一区| 午夜亚洲一区| 日韩av黄色在线| 国产精品久久久网站| 久久男人天堂|