av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

PHP命名空間概念解析

瀏覽:2日期:2022-09-13 15:58:11
1. PHP中的命名空間是什么?

什么是命名空間?“從廣義上來(lái)說(shuō),命名空間是一種封裝事物的方法。在很多地方都可以見(jiàn)到這種抽象概念。例如,在操作系統(tǒng)中目錄用來(lái)將相關(guān)文件分組,對(duì)于目錄中的文件來(lái)說(shuō),它就扮演了命名空間的角色。具體舉個(gè)例子,文件 foo.txt 可以同時(shí)在目錄/home/greg 和 /home/other 中存在,但在同一個(gè)目錄中不能存在兩個(gè) foo.txt 文件。另外,在目錄 /home/greg 外訪問(wèn) foo.txt 文件時(shí),我們必須將目錄名以及目錄分隔符放在文件名之前得到 /home/greg/foo.txt。這個(gè)原理應(yīng)用到程序設(shè)計(jì)領(lǐng)域就是命名空間的概念。”——命名空間概述

2. PHP命名空間該如何理解?

從本質(zhì)上講,命名空間就是一個(gè)容器,這個(gè)容器內(nèi)我們可以放入類、函數(shù)和變量,他們?cè)谕幻臻g內(nèi)可以無(wú)條件相互訪問(wèn)。在命名空間之外,就必須引用或者導(dǎo)入其他命名空間,才能調(diào)用它們包含的這些項(xiàng)。

命名空間跟shell中的文件目錄的概念是一樣一樣的。在當(dāng)前目錄下可以直接用文件名訪問(wèn)所有文件,如果需要訪問(wèn)其他目錄下的文件,就需要輸入相對(duì)路徑或絕對(duì)路徑。引用方式:

namespace foo; class Foo { public function foo() { return topnamespacebarBar::fuck(); } }

導(dǎo)入方式:

namespace foo; use topnamespacebarBar; class Foo {public function foo() {

return Bar::fuck(); } }

導(dǎo)入就相當(dāng)于將目的類復(fù)制一份到當(dāng)前命名空間中。

3. PHP命名空間有何實(shí)際應(yīng)用?

命名空間的存在是為了解決下面兩個(gè)問(wèn)題:

1. 用戶編寫(xiě)的代碼與PHP內(nèi)部的類/函數(shù)/常量或第三方類/函數(shù)/常量之間的名字沖突。

2. 為很長(zhǎng)的標(biāo)識(shí)符名稱(通常是為了緩解第一類問(wèn)題而定義的)創(chuàng)建一個(gè)別名(或簡(jiǎn)短)的名稱,提高源代碼的可讀性。

 4. 一些tips

1. 同一個(gè)空間下的類直接相互直接調(diào)用,屬于一家。例如 Laravel 中的 PageController 類中可以直接寫(xiě) Page::all() 這樣的代碼來(lái)調(diào)用 Page 這個(gè)model,因?yàn)樗麄儌z都在頂級(jí)命名空間下。

2. 若一個(gè)類存在于非頂級(jí)命名空間中,那么它只能在調(diào)用同樣是當(dāng)前命名空間下的其他類才不用“引用”或“導(dǎo)入”,它們屬于一家。任何子命名空間都是另一個(gè)命名空間,另一個(gè)容器,沒(méi)有除了容器之間關(guān)系之外的任何特殊關(guān)系。

3. Laravel 采用 classmap 方式進(jìn)行自動(dòng)加載(autoload),PHP雖然有了命名空間這個(gè)高級(jí)特性,但是這只是邏輯關(guān)系,require 文件還是要有的。這個(gè)類和文件的對(duì)應(yīng)關(guān)系就存在 /vendor/composer/autoload_classmap.php ,每次 composer dump-autoload 都會(huì)重新編譯、生成。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 国产一级片| 完全免费在线视频 | 国产成人免费视频网站高清观看视频 | 天啪| 91精品一区 | 91青娱乐在线 | 久久久久久久久99 | 久久久www成人免费无遮挡大片 | 欧美在线视频一区二区 | 在线观看av网站 | 国产无人区一区二区三区 | 国产高清免费 | 国产成都精品91一区二区三 | 在线免费看黄 | 91精品久久久 | 午夜影院操 | 美女激情av | 91久久久久 | 成人性视频在线播放 | 亚洲一区二区黄 | 成人av网站在线观看 | 欧美老少妇一级特黄一片 | 国产一区二区三区四区在线观看 | 亚洲永久免费观看 | 国产精品一区在线 | 日韩高清一区二区 | 久久久久国产成人精品亚洲午夜 | 亚洲国产精品一区二区第一页 | 99免费精品视频 | 午夜久久久 | 国产不卡一区 | 日韩免费看视频 | 九色视频网站 | 天天操夜夜操 | 中文精品久久 | 中国黄色在线视频 | 黑人巨大精品 | 精品久久久久久久久久 | 久草99| 久久久精品 | 不卡一区二区在线观看 |