PHP基礎之命名空間8——后備全局函數/常量
在一個命名空間中,當 PHP 遇到一個非限定的類、函數或常量名稱時,它使用不同的優先策略來解析該名稱。類名稱總是解析到當前命名空間中的名稱。因此在訪問系統內部或不包含在命名空間中的類名稱時,必須使用完全限定名稱,例如:
Example #1 在命名空間中訪問全局類
<?php namespace ABC; class Exception extends Exception {} $a = new Exception(’hi’); // $a 是類 ABCException 的一個對象 $b = new Exception(’hi’); // $b 是類 Exception 的一個對象 $c = new ArrayObject; // 致命錯誤, 找不到 ABCArrayObject 類?>
對于函數和常量來說,如果當前命名空間中不存在該函數或常量,PHP 會退而使用全局空間中的函數或常量。
Example #2 命名空間中后備的全局函數/常量
<?php namespace ABC; const E_ERROR = 45; function strlen($str) {return strlen($str) - 1; } echo E_ERROR, 'n'; // 輸出 '45' echo INI_ALL, 'n'; // 輸出 '7' - 使用全局常量 INI_ALL echo strlen(’hi’), 'n'; // 輸出 '1' if (is_array(’hi’)) { // 輸出 'is not array'echo 'is arrayn'; } else {echo 'is not arrayn'; }?>
相關文章:
1. 詳解JSP 內置對象request常見用法2. ASP.NET MVC實現下拉框多選3. ASP.NET MVC增加一條記錄同時添加N條集合屬性所對應的個體4. .NET Framework各版本(.NET2.0 3.0 3.5 4.0)區別5. 解決request.getParameter取值后的if判斷為NULL的問題6. JSP中param動作的實例詳解7. ASP.NET MVC實現本地化和全球化8. .Net反向代理組件Yarp用法詳解9. JS中的常見數組遍歷案例詳解(forEach, map, filter, sort, reduce, every)10. .NET中的MassTransit分布式應用框架詳解
