PHP基礎(chǔ)之命名空間4——命名空間和動態(tài)語言特征
PHP 命名空間的實現(xiàn)受到其語言自身的動態(tài)特征的影響。因此,如果要將下面的代碼轉(zhuǎn)換到命名空間中:
Example #1 動態(tài)訪問元素
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?>
必須使用完全限定名稱(包括命名空間前綴的類名稱)。注意因為在動態(tài)的類名稱、函數(shù)名稱或常量名稱中,限定名稱和完全限定名稱沒有區(qū)別,因此其前導(dǎo)的反斜杠是不必要的。
Example #2 動態(tài)訪問命名空間的元素
<?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'進行轉(zhuǎn)義 */ $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?>
相關(guān)文章:
1. php使用正則驗證密碼字段的復(fù)雜強度原理詳細講解 原創(chuàng)2. vue前端RSA加密java后端解密的方法實現(xiàn)3. JSP+Servlet實現(xiàn)文件上傳到服務(wù)器功能4. 基于jsp+mysql實現(xiàn)在線水果銷售商城系統(tǒng)5. 基于javaweb+jsp實現(xiàn)企業(yè)財務(wù)記賬管理系統(tǒng)6. CSS可以做的幾個令你嘆為觀止的實例分享7. ASP動態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗分享8. ASP中實現(xiàn)字符部位類似.NET里String對象的PadLeft和PadRight函數(shù)9. 利用CSS3新特性創(chuàng)建透明邊框三角10. 淺談由position屬性引申的css進階討論

網(wǎng)公網(wǎng)安備