亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP教程-PHP代碼中的名稱空間

2020-03-24 19:09:59
字體:
來源:轉載
供稿:網友
在 PHP V5.3 中引入的名稱空間是為 PHP 類、常量和函數提供上下文的一種方式,從而可以將使用相同名稱的元素看作是惟一的。惟一的名稱避免了命名沖突,當兩個類或函數使用相同的名稱時就會發生這種情況。有時這些 PHP 類表示現實世界中的相同對象,但它們的行為是完全不同的。名稱空間能夠確保您擁有正確的 PHP 類、常量或函數,并且要使用您的 PHP 類的人能夠確保他們使用了正確的類。代碼中的名稱空間就像現實世界中的上下文??紤]一個表示現實世界中的汽車對象的類。例如,通過 Internet 銷售汽車的公司使用的 Automobile 類的行為可能與保險銷售公司使用的 Automobile 類完全不同。作為html' target='_blank'>應用程序開發人員,您可能使用其他人編寫的組件。您不能保證其他人永遠不使用您已經使用的類名,但這些類的行為卻大相徑庭。在出現名稱空間之前,PHP 開發人員通常將上下文構建到類名中,例如 My_Enterprise_Person 或 XML_Validator。清單 1 顯示了一個位于名稱空間中的類。
清單 1. 在名稱空間中聲明類

下面給出了一個例子,展示了如何在名稱空間中引用類。
清單 2. 在名稱空間中引用類

在向所有類添加名稱空間之前定義一個名稱空間策略是個不錯的主意。盡管在某種程度上也可以不斷地構建名稱空間,但最好為名稱空間確定一個通用結構,以方便名稱空間的組織,并減少以后可能需要的修改。只要正確使用,除了提供上下文之外,名稱空間還可以用來組織 PHP 代碼。其他語言(比如 Java 和 C#)在很久以前就使用名稱空間。在選擇名稱空間命名方式上,我使用的約定類似于這些語言的約定,因為許多開發人員都對此比較熟悉,便于他們理解。不過,與 Java 語言不同的是,PHP 中的名稱空間與類所在的目錄之間沒有聯系。您可以給類、函數或常量選擇任意的名稱空間。您甚至可以對一個文件使用多個名稱空間。同時,PHP 名稱空間也不同于 C#,您可以對類以外的函數或常量使用名稱空間。頂級名稱空間如果您為某個組織構建名稱空間,您可以使用組織名作為頂級域。一般情況下,使用組織名稱創建頂級名稱空間已經足以為 PHP 代碼提供上下文,以及避免命名沖突,除非該組織編寫大量用途不一的應用程序。清單 3 的示例顯示了如何聲明頂級名稱空間。
清單 3. 頂級名稱空間

次級名稱空間次級名稱空間 是頂級名稱空間內部的名稱空間。當頂級名稱空間還不足以為 PHP 類建立上下文時,它們提供進一步說明。在創建次級名稱空間時,不要憑一時的興趣而過多地創建,這很重要。隨著次級名稱空間的增多,組織和引用它們就會變得越來越困難。如果您希望名稱空間發揮雙重作用,即避免命名沖突和組織 PHP 代碼,那么就要更加注意這點了。在決定為了方便組織代碼應該向另一個名稱空間引入多少個次級名稱空間時,我嘗試將該數量限制為 7 個(上下浮動不超過 2),以利用數字 7 更加容易記住這個優勢。這并不總是奏效的,但我將它作為一個指導原則,以確保不將名稱空間劃分為過多的次級名稱空間。清單 4 的示例顯示了在頂級名稱空間中聲明次級名稱空間。
清單 4. 次級名稱空間

反斜杠(/)將次級名稱空間 developerWorks 與頂級名稱空間 IBM 分開。在聲明次級名稱空間時,您可以使用兩個常見技巧,或同時使用它們。獲取名稱空間的常見地方是項目名或應用程序名;另一個地方是域名。通過項目定義如果您使用組織名作為頂級名稱空間,并且想通過次級名稱空間來進一步提供上下文,那么可以使用項目名或應用程序名作為次級名稱空間。例如,如果您構建一個稱為 Greeter 的新應用程序(用于獲取用戶的名稱并問候他們),那么清單 5 中的名稱空間將為稱為 Prompt 的類提供完整的上下文。
清單 5. 使用應用程序名作為次級名稱空間


?php
namespace IBM/Greeter;
class Prompt {
...
}
?

由于 Prompt 可能是多個應用程序或庫的類名,所以為該名稱空間添加組織名和項目名能夠讓這個 Prompt 類與其他同名的類區分開來。通過域定義使用域名是另一種選擇次級名稱空間的常見方式,如 清單 6 所示。它也可以用于項目名之后,是否使用取決于您對可重用性的計劃(見 根據可重用性命名 )。域 是對更大的問題域的一組分類。域的一個例子是在更大型的應用程序中處理帳戶、客戶和產品的 Account 、 Customers 或 Products 。
清單 6. 使用域作為次級名稱空間


?php
namespace IBM/MyApp/Account;
class Address {
...
}
?

根據可重用性命名除了應用支持可重用性的模塊概念之外,類和名稱空間的命名方式也能夠實現可重用性。有時不良的命名方式會損害可重用性,因為不佳的名稱暗示著類僅能用于特定目的。同樣,錯誤地應用名稱空間可能會不必要地局限類的使用范圍,讓它們的重用變得困難。在使用組織名的頂級名稱空間中,應該保留 Common 、 Core 、 Lib 等可跨應用程序重用的名稱空間。一個常見的例子是驗證,其中針對整個企業的庫存單位(SKU)、帳號或發票號的規則是一樣的,從而獲得合適的規則和長度。對于 Validator 類,類似清單 7 的名稱空間是不錯的選擇。
清單 7. 使用通用的 validation 名稱空間


?php
namespace MyCompany/Common/Validation;
class NotNullValidator {
...
}
?

在這里,組織名用作頂級域( MyCompany )。 Common 名稱空間用作項目。即使在編寫這個類的同時也許正在編寫一個特定的應用程序,該類一樣可以在組織的任何項目中使用。最后, Validation 用作類的域。
使用別名盡管名稱空間能夠幫助您組織類并避免命名約定,但其缺點是名稱過長。幸運的是,PHP 支持使用別名,因此可以在代碼中使用更短的別名。清單 8 提供了一個示例。
清單 8. 使用別名

命名約定名稱空間命名使用單詞首字母大寫或 PASCAL 命名約定,這與其他 PHP 約定一樣,比如 PHP Extension 和 Application Repository (PEAR) 包命名和文件名。例如,清單 9 中的名稱空間比 清單 10 中的名稱空間要好。
清單 9. 單詞首字母大寫或 PASCAL 命名

避免使用與其他 PHP 約定沖突的命名和大小寫約定。
清單 10. 使用糟糕的大小寫約定

結束語PHP 中的名稱空間能夠用于組織代碼、避免命名沖突以及為類、函數和常量提供上下文。在名稱空間中使用模式或約定讓代碼更易于理解,并且更易于引用和使用。html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九视频直播综合网| 国产精品极品美女在线观看免费| 国产亚洲视频在线观看| 中文日韩在线观看| 一本大道亚洲视频| 欧美高跟鞋交xxxxxhd| 色偷偷88888欧美精品久久久| 日韩精品福利网站| 欧美一区二区三区精品电影| www.日韩不卡电影av| 欧美性猛交xxxx富婆弯腰| 欧美黑人又粗大| 在线日韩av观看| 久久精品国产精品| 国产精品视频久| 日本乱人伦a精品| 亚洲国产精久久久久久| 久久精品在线播放| 中文字幕在线成人| 国产美女精品视频| 国产三级精品网站| 欧美精品成人在线| 茄子视频成人在线| 日韩精品在线观| 国产精品自产拍在线观| 日韩欧美国产视频| 色婷婷成人综合| 午夜精品一区二区三区在线播放| 人妖精品videosex性欧美| 精品国产福利视频| 亚洲精品在线不卡| 精品久久久久久久久久久久| 91久久久久久| 一本色道久久88亚洲综合88| 亚洲欧美日韩天堂| 91在线高清免费观看| 亚洲欧美日韩网| 欧美在线视频一二三| 久久精品国产2020观看福利| 北条麻妃一区二区三区中文字幕| 在线播放国产一区中文字幕剧情欧美| 久久青草精品视频免费观看| 久久人人爽国产| 国产精品成人在线| 97在线视频一区| 影音先锋欧美在线资源| 欧美天天综合色影久久精品| 亚洲精品网址在线观看| 久久久久久久香蕉网| 日韩av三级在线观看| 国产免费久久av| 欧美巨乳在线观看| 亚洲国产另类久久精品| 情事1991在线| 91精品免费视频| 国产69精品久久久久99| 国产精品免费视频久久久| 九九热在线精品视频| 69av在线视频| 美女扒开尿口让男人操亚洲视频网站| 88国产精品欧美一区二区三区| 欧美丝袜第一区| 在线精品高清中文字幕| 欧美激情区在线播放| 日韩在线播放视频| 亚洲国产成人av在线| 欧美国产日产韩国视频| 亚洲精品日韩丝袜精品| 久久精品国产亚洲精品2020| 亚洲第五色综合网| 亚洲欧美激情一区| 2021久久精品国产99国产精品| 亚洲综合日韩在线| 国产一区玩具在线观看| 日韩高清av一区二区三区| 亚洲最大福利网站| 欧美福利视频网站| 日韩中文字幕欧美| 亚洲片在线观看| 日韩精品亚洲视频| 亚洲香蕉伊综合在人在线视看| 欧美男插女视频| 亚洲一区二区三区香蕉| 精品福利樱桃av导航| 国产日韩中文在线| 久久久精品999| 日韩电影免费观看中文字幕| 欧美劲爆第一页| 伊人久久久久久久久久| 中文字幕免费精品一区高清| 国产免费一区二区三区在线观看| 中文字幕无线精品亚洲乱码一区| 亚洲精品大尺度| 欧美裸体xxxx| 91av视频在线播放| 98午夜经典影视| 欧美日韩第一页| 久久成人在线视频| 亚洲精品在线观看www| 欧美成人精品一区二区三区| 日韩在线播放av| 狠狠躁夜夜躁人人躁婷婷91| 精品无码久久久久久国产| 亚洲精品视频在线观看视频| 在线视频精品一| 国产一区二区在线免费| 日韩欧美在线中文字幕| 国产欧美一区二区三区四区| 欧美成人免费视频| 亚洲激情 国产| 国产精品久久97| 久久精品国产99国产精品澳门| 精品成人久久av| 欧美激情在线狂野欧美精品| 夜夜嗨av色综合久久久综合网| 日韩欧美成人精品| 久久在精品线影院精品国产| 高清欧美一区二区三区| 日韩精品极品在线观看播放免费视频| 精品一区精品二区| 国产日韩换脸av一区在线观看| 亚洲国产私拍精品国模在线观看| 亚洲免费福利视频| 亚洲福利视频在线| 亚洲电影免费观看高清完整版| 国产精品欧美日韩久久| 538国产精品一区二区免费视频| 欧美激情国内偷拍| 性欧美xxxx交| 亚洲国内高清视频| 久久久爽爽爽美女图片| 色小说视频一区| 国产精品第三页| 国产精品九九久久久久久久| 欧美另类极品videosbestfree| 国产精品免费视频xxxx| 亚洲国产欧美久久| 亚洲精品小视频在线观看| 亚洲精品美女久久| 亚洲成人网av| 欧美高清视频一区二区| 日韩精品在线观| 美日韩丰满少妇在线观看| 亚洲人成欧美中文字幕| 欧美日韩免费区域视频在线观看| 日本亚洲欧美成人| 欧美日韩午夜剧场| 日韩在线高清视频| 国产日韩av高清| 久久久久在线观看| 一区二区亚洲欧洲国产日韩| 日韩一区二区在线视频| 久久999免费视频| 久久精品视频99| 2018中文字幕一区二区三区| 成人激情视频在线播放| 亚洲精品日韩激情在线电影| 国语自产精品视频在免费| 成人免费网站在线| 中文字幕亚洲第一| 久久久av免费| 成人免费看片视频| 96sao精品视频在线观看| 亚洲欧洲在线免费|