PHP基礎(chǔ)之命名空間5——namespace關(guān)鍵字和__NAMESPACE__常量
PHP支持兩種抽象的訪問(wèn)當(dāng)前命名空間內(nèi)部元素的方法,__NAMESPACE__?魔術(shù)常量和namespace關(guān)鍵字。
常量__NAMESPACE__的值是包含當(dāng)前命名空間名稱的字符串。在全局的,不包括在任何命名空間中的代碼,它包含一個(gè)空的字符串。
Example #1 __NAMESPACE__ 示例, 在命名空間中的代碼
<?php namespace MyProject; echo ’'’, __NAMESPACE__, ’'’; // 輸出 'MyProject'?>
Example #2 __NAMESPACE__ 示例,全局代碼
<?php echo ’'’, __NAMESPACE__, ’'’; // 輸出 ''?>
常量?__NAMESPACE__?在動(dòng)態(tài)創(chuàng)建名稱時(shí)很有用,例如:
Example #3 使用__NAMESPACE__動(dòng)態(tài)創(chuàng)建名稱
<?php namespace MyProject; function get($classname) {$a = __NAMESPACE__ . ’’ . $classname;return new $a; }?>
關(guān)鍵字?namespace?可用來(lái)顯式訪問(wèn)當(dāng)前命名空間或子命名空間中的元素。它等價(jià)于類中的?self?操作符。
Example #4 namespace操作符,命名空間中的代碼
<?php namespace MyProject; use blahblah as mine; //命名空間別名(參考:使用命名空間別名和導(dǎo)入) blahmine(); // 調(diào)用函數(shù) blahblahmine() namespaceblahmine(); // 調(diào)用函數(shù) MyProjectblahmine() namespacefunc(); // 調(diào)用函數(shù) MyProjectfunc() namespacesubfunc(); // 調(diào)用函數(shù) MyProjectsubfunc() namespacecname::method(); // 調(diào)用類 MyProjectcname 的靜態(tài)方法'method' $a = new namespacesubcname(); // 實(shí)例化類MyProjectsubcname的對(duì)象 $b = namespaceCONSTANT; // 將常量 MyProjectCONSTANT 的值賦給 $b?>
Example #5 namespace操作符, 全局代碼
<?php namespacefunc(); // 調(diào)用函數(shù) func() namespacesubfunc(); // 調(diào)用函數(shù) subfunc() namespacecname::method(); // 調(diào)用類cname的靜態(tài)方法'method' $a = new namespacesubcname(); // 實(shí)例化subcname類對(duì)象 $b = namespaceCONSTANT; // 將常量 CONSTANT 的值賦給 $b?>
相關(guān)文章:
1. 如何基于python3和Vue實(shí)現(xiàn)AES數(shù)據(jù)加密2. 10個(gè)提供免費(fèi)PHP腳本下載的網(wǎng)站3. PHP擴(kuò)展之APC——Alternative PHP Cache(可選PHP緩存)4. PHP設(shè)計(jì)模式(四)原型模式Prototype實(shí)例詳解【創(chuàng)建型】5. Java 基于UDP協(xié)議實(shí)現(xiàn)消息發(fā)送6. Python編寫nmap掃描工具7. Java向Runnable線程傳遞參數(shù)方法實(shí)例解析8. python 爬取嗶哩嗶哩up主信息和投稿視頻9. ASP.NET MVC前臺(tái)動(dòng)態(tài)添加文本框并在后臺(tái)使用FormCollection接收值10. php5.6不能擴(kuò)展redis.so的解決方法
