国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP中的命名空間詳細介紹

2019-11-02 15:51:40
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了PHP中的命名空間詳細介紹,本文講解了命名空間(namespace)的概念、正在使用命名空間、定義命名空間、子命名空間、從命名空間中調用代碼等內容,需要的朋友可以參考下

  概述

  PHP對于命名空間的支持,經歷了一段艱難的旅程。幸運的是,PHP從5.3開始引入了命名空間。自從PHP引入了命名空間,PHP代碼的適用結構也得到了大大的改善。許多編程語言早就有了命名空間的概念,相對于其他語言來說,PHP對于命名空間的支持,稍微有點晚了。不管如何,每一種新特性的引入都有其目的,和其他語言一樣,PHP引入命名空間也主要是為了解決名字沖突的問題。

  命名空間(namespace)的概念

   代碼如下:

  當在字符串中使用命名空間名字的時候,一定不要忘了轉義

  可以將命名空間想象成一個抽屜,你可以在抽屜里放入鉛筆、尺子、A4紙等,這些都是你自己的私有物品。在你的抽屜下面是別人的抽屜,別人也可以在抽屜里放入相同的物品。為了不拿錯物品,你們決定在自己的抽屜上貼上標簽,這樣就可以清晰的看到某個物品是屬于誰的了。

  之前,開發者必須在類、函數和常量中添加下劃線,用來使自己的代碼獨立其他于代碼庫。這相當于所有人都給自己的物品貼上標簽之后,一起放入了一個更大的抽屜里。盡管這也是一種組織代碼的方式,但是這種方式是非常低效的。

  命名空間的到來就是為了解決這個問題。我們可以在不同的命名空間里聲明相同的函數、類和常量,而不會造成名字上的沖突。本質上,命名空間無非是一種分等級標記PHP代碼的方式。

  正在使用命名空間

  有一點需要注意的是,我們正在間接的使用命名空間。從PHP 5.3開始,所有在非用戶定義的命名空間中的聲明(類、函數、常量),都默認的屬于全局命名空間。

  全局命名空間中包含了所有PHP內部的定義,如echo()、mysqli_connect()和Exception類。由于全局命名空間并沒有獨立的標識名,所以它經常被成為全局空間(global space)。

  定義命名空間

  命名空間的定義必須是PHP文件的第一條語句。唯一允許在定義命名空間之前使用的語句是declare語句。

  定義命名空間很簡單,只需要使用關鍵字namespace即可。命名空間的名字需要遵循PHP文件中其他標識符的命名規則。

  下面是定義一個命名空間的示例:

   代碼如下:

  namespace MyNamespace{

  class Test{

  }

  }

  如果

歷史人物[www.9-39.com/html/person/]
想定義一個屬于全局空間的代碼塊,也是使用namespace關鍵字,但是后面不加命名空間的名字,如下:

  代碼如下:

  namespace {

  class Test{

  }

  }

  我們甚至可以在一個文件中定義多個命名空間,如下:

   代碼如下:

  

  namespace MyNamespace {

  }

  namespace MySecondNamespace {

  }

  namespace {

  }

  我們也可以將一個命名空間分散在不同的文件中,文件包含的處理程序會自動合并他們。因此,限制大量的命名空間在同一個文件中定義是一個很好的編程實踐,就像我們通常單獨為每個類定義一個單獨的文件一樣。

  復制代碼 代碼如下:

  有一點需要注意的是,包含命名空間代碼塊的{是可選的,可以用也可以不用。事實上,只要我們堅持在一個文件中只定義一個命名空間,那么我們就可以完全省略{,這樣也可以使我們的代碼看起來更加簡潔。

  子命名空間

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海兴县| 大洼县| 崇礼县| 潞西市| 永修县| 郧西县| 珠海市| 新丰县| 寿阳县| 宁夏| 防城港市| 普格县| 宝兴县| 峡江县| 昌平区| 毕节市| 当涂县| 江源县| 丰顺县| 白河县| 双辽市| 云阳县| 涿鹿县| 东乌珠穆沁旗| 秦皇岛市| 仁化县| 常州市| 松江区| 耿马| 定日县| 鹤庆县| 靖江市| 祥云县| 扶余县| 甘孜县| 杨浦区| 铁岭县| 台中县| 永年县| 凉城县| 碌曲县|