PHP基礎之命名空間5——namespace關(guān)鍵字和__NAMESPACE__常量
PHP支持兩種抽象的訪問當前命名空間內(nèi)部元素的方法,__NAMESPACE__?魔術(shù)常量和namespace關(guān)鍵字。
常量__NAMESPACE__的值是包含當前命名空間名稱的字符串。在全局的,不包括在任何命名空間中的代碼,它包含一個空的字符串。
Example #1 __NAMESPACE__ 示例, 在命名空間中的代碼
<?php namespace MyProject; echo ’'’, __NAMESPACE__, ’'’; // 輸出 'MyProject'?>
Example #2 __NAMESPACE__ 示例,全局代碼
<?php echo ’'’, __NAMESPACE__, ’'’; // 輸出 ''?>
常量?__NAMESPACE__?在動態(tài)創(chuàng)建名稱時很有用,例如:
Example #3 使用__NAMESPACE__動態(tài)創(chuàng)建名稱
<?php namespace MyProject; function get($classname) {$a = __NAMESPACE__ . ’’ . $classname;return new $a; }?>
關(guān)鍵字?namespace?可用來顯式訪問當前命名空間或子命名空間中的元素。它等價于類中的?self?操作符。
Example #4 namespace操作符,命名空間中的代碼
<?php namespace MyProject; use blahblah as mine; //命名空間別名(參考:使用命名空間別名和導入) 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(); // 實例化類MyProjectsubcname的對象 $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(); // 實例化subcname類對象 $b = namespaceCONSTANT; // 將常量 CONSTANT 的值賦給 $b?>
相關(guān)文章:
1. php網(wǎng)絡安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究2. 三個不常見的 HTML5 實用新特性簡介3. Angular獲取ngIf渲染的Dom元素示例4. IIS+PHP添加對webp格式圖像的支持配置方法5. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附json.min.asp6. 無線標記語言(WML)基礎之WMLScript 基礎第1/2頁7. 使用.net core 自帶DI框架實現(xiàn)延遲加載功能8. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報錯問題分析9. php測試程序運行速度和頁面執(zhí)行速度的代碼10. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析
