PHP基礎之命名空間5——namespace關鍵字和__NAMESPACE__常量
PHP支持兩種抽象的訪問當前命名空間內部元素的方法,__NAMESPACE__?魔術常量和namespace關鍵字。
常量__NAMESPACE__的值是包含當前命名空間名稱的字符串。在全局的,不包括在任何命名空間中的代碼,它包含一個空的字符串。
Example #1 __NAMESPACE__ 示例, 在命名空間中的代碼
<?php namespace MyProject; echo ’'’, __NAMESPACE__, ’'’; // 輸出 'MyProject'?>
Example #2 __NAMESPACE__ 示例,全局代碼
<?php echo ’'’, __NAMESPACE__, ’'’; // 輸出 ''?>
常量?__NAMESPACE__?在動態創建名稱時很有用,例如:
Example #3 使用__NAMESPACE__動態創建名稱
<?php namespace MyProject; function get($classname) {$a = __NAMESPACE__ . ’’ . $classname;return new $a; }?>
關鍵字?namespace?可用來顯式訪問當前命名空間或子命名空間中的元素。它等價于類中的?self?操作符。
Example #4 namespace操作符,命名空間中的代碼
<?php namespace MyProject; use blahblah as mine; //命名空間別名(參考:使用命名空間別名和導入) blahmine(); // 調用函數 blahblahmine() namespaceblahmine(); // 調用函數 MyProjectblahmine() namespacefunc(); // 調用函數 MyProjectfunc() namespacesubfunc(); // 調用函數 MyProjectsubfunc() namespacecname::method(); // 調用類 MyProjectcname 的靜態方法'method' $a = new namespacesubcname(); // 實例化類MyProjectsubcname的對象 $b = namespaceCONSTANT; // 將常量 MyProjectCONSTANT 的值賦給 $b?>
Example #5 namespace操作符, 全局代碼
<?php namespacefunc(); // 調用函數 func() namespacesubfunc(); // 調用函數 subfunc() namespacecname::method(); // 調用類cname的靜態方法'method' $a = new namespacesubcname(); // 實例化subcname類對象 $b = namespaceCONSTANT; // 將常量 CONSTANT 的值賦給 $b?>
相關文章:
