一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - PHP中的命名空間相關(guān)概念淺析

PHP中的命名空間相關(guān)概念淺析

2020-08-30 11:45PHP教程網(wǎng) PHP教程

這篇文章主要介紹了PHP中的命名空間相關(guān)概念淺析,從廣義上來說,命名空間是一種封裝事物的方法,在很多地方都可以見到這種抽象概念,需要的朋友可以參考下

1. PHP中的命名空間是什么?

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

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

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

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

引用方式:

復(fù)制代碼 代碼如下:

namespace foo;
 class Foo {  
         public function foo()  
             {       
                  return \top\namespace\bar\Bar::fuck();   
              }
             }


導(dǎo)入方式:

復(fù)制代碼 代碼如下:

namespace foo;
use top\namespace\bar\Bar;
 class Foo {
        public function foo()
            {        return Bar::fuck(); 
            }
           }

 

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

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

命名空間的存在是為了解決下面兩個問題:

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

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

4. 一些tips

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎免费影院在线播放 | 久久99精国产一区二区三区四区 | 98精品全国免费观看视频 | 成人看片免费无限观看视频 | 欧美一级在线播放 | 亚洲国产在线观看免费视频 | ysl蜜桃色成人麻豆 youwu在线影院 | 探花 在线 | 四虎在线视频免费观看视频 | 国产亚洲精品一区二区在线播放 | 91最新高端约会系列178 | 无人区乱码区1卡2卡三卡在线 | 好姑娘完整版在线观看中文 | 天堂激情网 | 久久精品中文字幕 | 天码毛片一区二区三区入口 | 毛片区 | 国产日韩欧美色视频色在线观看 | 日本xxxxn1819| 欧美一区二区福利视频 | 日韩精品一区二区三区视频 | 国内精品一区视频在线播放 | 亚洲国产精品ⅴa在线观看 亚洲国产高清一区二区三区 | 麻豆视频网 | 国产精品29页 | 久久亚洲精品AV成人无码 | 91av俱乐部 | 无码毛片内射白浆视频 | 大胸纲手被羞羞漫画网站 | 天天gan| 五月激激激综合网色播免费 | 国产精品亚洲综合第一区 | 亚欧毛片基地国产毛片基地 | 国产精品国产高清国产专区 | 短篇最污的乱淫伦小说全集 | 龟甲情感超市全文阅读 小说 | 国产精品思瑞在线观看 | 国产永久一区二区三区 | 四虎影视色费永久在线观看 | 欧美专区在线视频 | 99精品国产高清自在线看超 |