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. ASP.NET泛型四之使用Lazy<T>实现延迟加载2. Idea工具中创建 SpringBoot工程及入门详解3. 详解Java并发包中线程池ThreadPoolExecutor4. Vue中keep-alive组件的深入理解5. 使用本机IIS Express开发Asp.Net Core应用图文教程6. ASP.NET MVC使用正则表达式验证手机号码7. 一个用xslt样式将xml解析为xhtml的类TransformBinder(兼容FF和IE7.0)8. VUE+Express+MongoDB前后端分离实现一个便签墙9. Android 基于MediatorLiveData实现红点的统一管理10. vue在响应头response中获取自定义headers操作

网公网安备