PHP命名空間(namespace)的動態訪問及提示_php執行個體

來源:互聯網
上載者:User

PHP的命名空間(namespace)是PHP 5.3中加入最重要的一個新特性,這個概念在C#中已經很早就有了,php中的namespace其實和c#的概念是一樣的。

一.動態訪問命名空間的元素

namespace me\poet;function test(){  echo '1111';}$fun = 'test';//不能這麼用,最後$fun()無法動態調用到test():Fatal error: Call to undefined function test()$fun = '\me\poet\test';//正確//$fun = 'me\poet\test';//正確$fun();

也就是說,動態調用必須是 限定名稱 或 完全限定名稱(概念參考:PHP命名空間的使用基礎)


二.魔術常量 和 操作符

namespace me\poet;function test(){  echo '1';}echo __NAMESPACE__; //魔術常量:命名空間的名稱(輸出 me\poet)//namespace操作符:顯式訪問當前命名空間或子命名空間中的元素,等價於類中的self操作符\me\poet\test();namespace\test();//上兩行代碼等價。


三.別名、匯入 和 全域空間(含多個例子)

namespace ws\weichen\www;use ws\weichen\www as poet;//定義別名poet//use ws\weichen\www; //不加as,則取最後的作為別名(www)function demo(){  echo '1';}\ws\weichen\www\demo();poet\demo();//www\demo();    //不加as的情況,則這樣調用

以上三行代碼效果一樣。
按規則(ws\weichen\www)命名的好處:若更換網域名稱,只要把首碼名稱改了就可以,不影響後面代碼中別名www的使用。

/* 匯入 */include 'hello.class.php';use \ws\weichen\www;use \Hello;/*--------------------------------------------------------*//* 支援多個use語句 */use \nihao\shijie as hello, \ws\weichen\www;/*--------------------------------------------------------*//* 全域空間:反斜線調用 */namespace A\B\C;//這個函數是 A\B\C\fopen();function fopen(){  $f = \fopen('demo.txt');//調用全域fopen函數  return $f;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.