PHP基礎之命名空間4——命名空間和動態語言特征
PHP 命名空間的實現受到其語言自身的動態特征的影響。因此,如果要將下面的代碼轉換到命名空間中:
Example #1 動態訪問元素
example1.php:<?php class classname {function __construct(){ echo __METHOD__,'n';} } function funcname() {echo __FUNCTION__,'n'; } const constname = 'global'; $a = ’classname’; $obj = new $a; // prints classname::__construct $b = ’funcname’; $b(); // prints funcname echo constant(’constname’), 'n'; // prints global?>
必須使用完全限定名稱(包括命名空間前綴的類名稱)。注意因為在動態的類名稱、函數名稱或常量名稱中,限定名稱和完全限定名稱沒有區別,因此其前導的反斜杠是不必要的。
Example #2 動態訪問命名空間的元素
<?php namespace namespacename; class classname {function __construct(){ echo __METHOD__,'n';} } function funcname() {echo __FUNCTION__,'n'; } const constname = 'namespaced'; include ’example1.php’; $a = ’classname’; $obj = new $a; // prints classname::__construct $b = ’funcname’; $b(); // prints funcname echo constant(’constname’), 'n'; // prints global /* 注意如果使用雙引號, 一定要使用'namespacenameclassname'進行轉義 */ $a = ’namespacenameclassname’; $obj = new $a; // prints namespacenameclassname::__construct $a = ’namespacenameclassname’; $obj = new $a; // also prints namespacenameclassname::__construct $b = ’namespacenamefuncname’; $b(); // prints namespacenamefuncname $b = ’namespacenamefuncname’; $b(); // also prints namespacenamefuncname echo constant(’namespacenameconstname’), 'n'; // prints namespaced echo constant(’namespacenameconstname’), 'n'; // also prints namespaced?>
相關文章:
1. Python獲取抖音關注列表封號賬號的實現代碼2. ajax請求添加自定義header參數代碼3. Python數據分析之pandas函數詳解4. 解決Python 進程池Pool中一些坑5. php測試程序運行速度和頁面執行速度的代碼6. 無線標記語言(WML)基礎之WMLScript 基礎第1/2頁7. 三個不常見的 HTML5 實用新特性簡介8. 使用.net core 自帶DI框架實現延遲加載功能9. php網絡安全中命令執行漏洞的產生及本質探究10. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報錯問題分析
