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'; }?>
相關文章: