婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP進階學習之命名空間基本用法分析

PHP進階學習之命名空間基本用法分析

熱門標簽:廣東廣州在怎么申請400電話 電銷機器人問門薩維品牌my 咸寧銷售電銷機器人系統 百度地圖標注偏差 百度地圖怎樣標注圖標 開發地圖標注類網站 400電話蘭州申請請 外呼系統能給企業帶來哪些好處 余姚電話機器人

本文實例講述了PHP進階學習之命名空間基本用法。分享給大家供大家參考,具體如下:

前言

命名空間(namespace),在編程語言中,是對作用域的一種特殊的抽象.它表示著一個標識符的可見范圍。一個標識符可在多個命名空間中定義,它在不同命名空間中的含義是互不相干的。這樣,在一個新的命名空間中可定義任何標識符,它們不會與任何已有的標識符發生沖突,因為已有的定義都處于其他命名空間中。

在PHP中也存在命名空間的用法,由它控制可見范圍的這個標識符一般指的就是類和函數。

一、PHP命名空間基礎

從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。例如PHP的類名是不可以重復的,但是經常我們需要引入一些第三方的類庫,常常類名就會在項目中產生重復沖突,所以,命名空間就是解決這個沖突的一種方法。

在PHP5.3以后,就已經引入了命名空間(namespace)的概念,即同個命名空間下的類名不能重復,不同命名空間下可以存在同名的類。

這樣,在引入第三方類庫的時候,只有各個類庫的命名空間不一樣,就不會產生沖突。

所以根據官方所說,在PHP中,命名空間用來解決在編寫類庫或應用程序時創建可重用的代碼如類或函數時碰到的兩類問題:

1、用戶編寫的代碼與PHP內部的類/函數/常量或第三方類/函數/常量之間的名字沖突。
2、為很長的標識符名稱(通常是為了緩解第一類問題而定義的)創建一個別名(或簡短)的名稱,提高源代碼的可讀性。

需要注意的是:

  • 同個文件下可以存在多個命名空間;
  • 不同命名空間內的類可以相互調用。

二、PHP命名空間的用法

1、定義

命名空間的定義采用關鍵字namespace,定義方式如下:

namespace example

則該命名空間下的類都歸屬于該命名空間,example命名空間下的類不能重名。

或者可以定義多級命名空間:

namespace example\test\demo

則改命名空間下的類全歸屬于example\test\demo命名空間。

定義后的命名空間可以用_​_​NAMESPACE_​_​魔法變量來獲取當前命名空間。

2、引入

引入命名空間使用關鍵字use,可以通過多個use在一個文件中引入多個命名空間:

use example;
use example\test\demo;

需要使用到哪個命名空間的類和方法,則use哪個命名空間,前提是這些命名空間的實際文件地址已經包含進來了,或者說能實現自動的類加載了。

3、實例化

在程序中實例化并使用某個命名空間下的類方法,同樣使用new關鍵字進行實例化,但是需要在類名前面加上命名空間前綴。

例如:

$class = new example\a();//實例化example命名空間下的a類
$class = new example\test\demo\b(); //實例化example\test\demo命名空間下的b類

如果在文件前面已經引入了這些命名空間,則可以不需要類的前綴:

use example;
use example\test\demo;
$class = new a();//實例化example命名空間下的a類
$class = new b(); //實例化example\test\demo命名空間下的b類

注:如果use的時候是use example\test;則在實例化b類時要帶上相對命名空間路徑(注意不是實際文件路徑),即new demo\b();

當然所有的實例化都可以直接使用絕對路徑形式,即在命名空間前面加\字符,如new \example\test\demo\b();這樣就采用了絕對路徑形式實例化了b類。

4、別名

在用namespace定義命名空間的時候,為了避免之后引用的時候命名空間過長,可以在定義時采用as關鍵字為一個命名空間指定別名

namespace example\test\demo as testDemo;

這樣在之后引用或實例化的時候就可以new testDemo\類名>();

三、基于PSR4的命名空間規范

由于方法、類在不同項目中命名空間定義不一致,第三方類庫的命名空間也定義不一致,所以相關php組織出臺了一套約定俗成的規范,即PSR4規范,

用來規范命名空間的定義規則。

具體規范如下:

1. 一個完整的類名需具有以下結構:

\命名空間>(\子命名空間>)*\類名>
    1. 完整的類名 必須 要有一個頂級命名空間,被稱為 "vendor namespace";
    2. 完整的類名 可以 有一個或多個子命名空間;
    3. 完整的類名 必須 有一個最終的類名;
    4. 完整的類名中任意一部分中的下滑線都是沒有特殊含義的;
    5. 完整的類名 可以 由任意大小寫字母組成;
    6. 所有類名都 必須 是大小寫敏感的。

2. 當根據完整的類名載入相應的文件

    (1). 完整的類名中,去掉最前面的命名空間分隔符,前面連續的一個或多個命名空間和子命名空間,作為「命名空間前綴」,其必須與至少一個「文件基目錄」相對應;
    (2). 緊接命名空間前綴后的子命名空間 必須 與相應的「文件基目錄」相匹配,其中的命名空間分隔符將作為目錄分隔符。
    (3). 末尾的類名 必須 與對應的以 .php 為后綴的文件同名。
    (4). 自動加載器(autoloader)的實現 一定不可 拋出異常、一定不可 觸發任一級別的錯誤信息以及 不應該 有返回值。

看起來很復雜,其實規范的要點就是,命名空間的路徑要與當前文件的路徑相對應,這樣規范了所有項目命名空間的定義準則,雖然PHP官方沒有

強制規定,但如今許多開源項目都已經約定俗成地使用了,這種規范便于查找命名空間下的類所在的路徑。

例如,文件目錄a/b/c下有d.php,則在a目錄下的的文件引入d的類時,應該是use b/c或use /a/b/c;(絕對路徑形式)

四、注意點

1、代碼復用類Trait也符合命名空間的規范,即通過命名空間下Trait類不能重名;
2、雖然PSR4規定了命名空間路徑與文件路徑需要相對應,但是運行php時命名空間路徑與文件路徑是沒有任何關系的,例如a/b/c下的文件類d,命名空間可以寫成a1/b1/c1/d;只不過現在的許多開源框架在實現類自動加載的時候把兩者規范為一致,否則會出現類文件加載到了,但是命名空間卻加載不到的情況。
3、在命名空間內部,所有的沒有根據導入規則轉換的限定名稱均會在其前面加上當前的命名空間名稱。例如,在命名空間A\B內部調用C\D\e(),則C\D\e()會被轉換為A\B\C\D\e()。
4、在命名空間內部(例如A\B),對非限定名稱的函數調用是在運行時解析的。例如對函數foo()的調用是這樣解析的:
(1)在當前命名空間中查找名為A\B\foo()的函數
(2)嘗試查找并調用全局(global)空間中的函數foo()。
5、在命名空間(例如A\B)內部對非限定名稱或限定名稱類(非完全限定名稱)的調用是在運行時解析的。下面是調用new C()及new D\E()的解析過程:new C()的解析:
(1)在當前命名空間中查找A\B\C類。
(2)嘗試自動裝載類A\B\C。

以上內容引用了PSR4文檔地址:http://www.php-fig.org/psr/psr-4/

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • php的命名空間與自動加載實現方法
  • PHP命名空間定義與用法實例分析
  • php命名空間設計思想、用法與缺點分析
  • PHP中命名空間的使用例子
  • 實例講解PHP中使用命名空間
  • PHP命名空間簡單用法示例
  • PHP命名空間與自動加載類詳解
  • PHP命名空間namespace及use的簡單用法分析
  • 如何理解PHP核心特性命名空間

標簽:巴彥淖爾 麗江 鷹潭 銅陵 十堰 重慶 衡陽 臨沂

巨人網絡通訊聲明:本文標題《PHP進階學習之命名空間基本用法分析》,本文關鍵詞  PHP,進階,學,習之,命名,空間,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP進階學習之命名空間基本用法分析》相關的同類信息!
  • 本頁收集關于PHP進階學習之命名空間基本用法分析的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲国产成人tv| 亚洲精品成a人| 日日夜夜免费精品| 日本 国产 欧美色综合| 亚洲私人影院在线观看| 日日欢夜夜爽一区| 国产精品18久久久久久久网站| 欧美mv和日韩mv的网站| 亚洲一级不卡视频| 国产一区二区三区久久久| 欧美日韩中文字幕一区| 成人欧美一区二区三区小说| 精品91自产拍在线观看一区| av综合在线播放| 中文字幕av不卡| 欧美日韩视频不卡| 久久久精品免费免费| 国产天堂亚洲国产碰碰| 欧洲日韩一区二区三区| 波多野结衣精品在线| 欧美日本一区二区三区四区 | 亚洲综合免费观看高清完整版在线| 性久久久久久久久久久久| 视频一区二区三区在线| 亚洲精品在线电影| 国产精品麻豆99久久久久久| 有坂深雪av一区二区精品| 亚洲精品自拍动漫在线| 日韩主播视频在线| 国产乱码精品一区二区三区av | 琪琪一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 欧美久久久久久蜜桃| 国产精品免费久久久久| 欧美午夜不卡视频| 一区二区三区视频在线看| 精品日韩av一区二区| 欧美亚洲禁片免费| 日本电影欧美片| 欧美成人a∨高清免费观看| 最新国产成人在线观看| 欧美一区二区三区影视| 日韩欧美一区二区三区在线| 91蝌蚪porny九色| 国产欧美日本一区二区三区| 亚洲女性喷水在线观看一区| 欧美一级日韩不卡播放免费| 久久国产精品99久久人人澡| 欧美极品美女视频| 韩日欧美一区二区三区| 91丨porny丨在线| 亚洲国产中文字幕在线视频综合| 亚洲欧美欧美一区二区三区| 麻豆免费看一区二区三区| 麻豆国产精品777777在线| 在线观看www91| 天天综合色天天| 欧美精品在线观看一区二区| 777色狠狠一区二区三区| 亚洲美女在线一区| 国产成人亚洲综合a∨猫咪 | 1区2区3区国产精品| 男男成人高潮片免费网站| 日韩av电影一区| 国产一区免费电影| 床上的激情91.| 成人黄色一级视频| 欧美日韩一区高清| 99视频超级精品| 欧美精品视频www在线观看 | 久久精品国产亚洲a| 精品亚洲成av人在线观看| 国产精品一区不卡| 欧美人妇做爰xxxⅹ性高电影 | 26uuuu精品一区二区| 7777女厕盗摄久久久| 一区二区三区日韩精品| 国产伦精品一区二区三区视频青涩 | 欧美一区二区私人影院日本| 欧美国产日韩亚洲一区| 国产米奇在线777精品观看| 色噜噜狠狠成人中文综合| 91久久精品一区二区三区| 一区二区三区在线免费观看| 在线免费观看成人短视频| 婷婷开心激情综合| 欧美日韩1区2区| 亚洲国产人成综合网站| 欧美性猛交xxxxxx富婆| 一区二区三区在线免费| 美国三级日本三级久久99| 欧美欧美欧美欧美| 日本系列欧美系列| 日韩免费性生活视频播放| 精品一区二区精品| 久久久久久免费网| 国产福利不卡视频| 国产精品区一区二区三| 91精品福利在线一区二区三区 | 亚洲国产日韩a在线播放性色| 成人激情免费网站| 26uuu另类欧美| 欧美性视频一区二区三区| 一区二区三区波多野结衣在线观看| 国产一区二区三区久久悠悠色av| 一区二区在线免费| 久久欧美一区二区| 亚洲欧洲另类国产综合| 风间由美中文字幕在线看视频国产欧美| 一区二区在线免费观看| 精品国产一二三区| 免费成人小视频| 国产成人av自拍| 欧美亚洲丝袜传媒另类| 成人av在线网| 麻豆国产精品777777在线| 久久婷婷色综合| 欧美va日韩va| 国产精品网友自拍| 国产午夜亚洲精品不卡| 欧美一区二区三区视频免费播放| 色综合久久天天综合网| 色诱视频网站一区| 亚洲韩国精品一区| 在线国产电影不卡| 国产精品久久久久久久午夜片| 另类欧美日韩国产在线| 成人性生交大片免费看中文网站| youjizz久久| 日韩欧美国产精品一区| 一区二区三区日韩欧美| 国产激情精品久久久第一区二区| 亚洲色图视频网站| 欧美成人video| 日韩一区二区精品| 亚洲国产日韩精品| 高清不卡一二三区| 日本va欧美va精品发布| 成人午夜又粗又硬又大| 精品久久人人做人人爽| 国产在线精品一区二区夜色| 91麻豆成人久久精品二区三区| 国产精品久久久久久久第一福利| 《视频一区视频二区| 欧美精品 日韩| 色综合久久综合网欧美综合网 | 国产精品久久久久毛片软件| av激情成人网| 国产精品天干天干在线综合| 日本aⅴ亚洲精品中文乱码| 欧美成人猛片aaaaaaa| 在线中文字幕不卡| 亚洲制服丝袜一区| 精品视频资源站| 国产精品白丝av| 欧美成人一区二区三区片免费 | 狠狠色丁香婷婷综合| 国产日韩在线不卡| 水野朝阳av一区二区三区| 色综合一区二区| 亚洲三级电影网站| 在线影视一区二区三区| 日韩片之四级片| 亚洲国产日韩a在线播放性色| 国产麻豆日韩欧美久久| 99视频国产精品| 亚洲视频 欧洲视频| 精品无人码麻豆乱码1区2区 | 成人精品电影在线观看| 成人国产在线观看| 亚洲综合一区在线| 日韩亚洲欧美中文三级| 91视视频在线观看入口直接观看www | av网站一区二区三区| 久久亚洲免费视频| 3d动漫精品啪啪1区2区免费| 国产成人综合在线播放| 白白色 亚洲乱淫| 国产在线播放一区三区四| 成人激情文学综合网| 日韩精品一区二区三区三区免费| 亚洲最色的网站| 欧美成va人片在线观看| 777亚洲妇女| 免费在线观看成人| 欧美国产日韩在线观看| 国产999精品久久| 欧美成人高清电影在线| 欧美色倩网站大全免费| 亚洲视频网在线直播| 欧美另类高清zo欧美| 一区二区三区在线播| 国产成人精品1024| 久久久五月婷婷| 精品国产免费一区二区三区四区| 欧美韩国日本不卡| 久久超碰97人人做人人爱| 不卡视频一二三四| 日韩欧美高清一区| 麻豆精品精品国产自在97香蕉|