php命名空间规则解析及高级功能,PHP命名空间解析规则
PHP 5.3加入命名空间特性之后,相信很多朋友在产品开发的中已经大量使用了,
不过其解析规则反正是让我纠结了一下子,不注意就会被搞晕,幸好在手册中发现这么一段代码,
故手册中其他关于namespace的内容,就可以忽略了,直接看下面的代码
namespace A;
use B\D, C\E as F;
// 函数调用
foo(); // 首先尝试调用定义在命名空间"A"中的函数foo()
// 再尝试调用全局函数 "foo"
\foo(); // 调用全局空间函数 "foo"
my\foo(); // 调用定义在命名空间"A\my"中函数 "foo"
F(); // 首先尝试调用定义在命名空间"A"中的函数 "F"
// 再尝试调用全局函数 "F"
// 类引用
new B(); // 创建命名空间 "A" 中定义的类 "B" 的一个对象
// 如果未找到,则尝试自动装载类 "A\B"
new D(); // 使用导入规则,创建命名空间 "B" 中定义的类 "D" 的一个对象
// 如果未找到,则尝试自动装载类 "B\D"
new F(); // 使用导入规则,创建命名空间 "C" 中定义的类 "E" 的一个对象
// 如果未找到,则尝试自动装载类 "C\E"
new \B(); // 创建定义在全局空间中的类 "B" 的一个对象
// 如果未发现,则尝试自动装载类 "B"
new \D(); // 创建定义在全局空间中的类 "D" 的一个对象
// 如果未发现,则尝试自动装载类 "D"
new \F(); // 创建定义在全局空间中的类 "F" 的一个对象
// 如果未发现,则尝试自动装载类 "F"
// 调用另一个命名空间中的静态方法或命名空间函数
B\foo(); // 调用命名空间 "A\B" 中函数 "foo"
B::foo(); // 调用命名空间 "A" 中定义的类 "B" 的 "foo" 方法
// 如果未找到类 "A\B" ,则尝试自动装载类 "A\B"
D::foo(); // 使用导入规则,调用命名空间 "B" 中定义的类 "D" 的 "foo" 方法
// 如果类 "B\D" 未找到,则尝试自动装载类 "B\D"
\B\foo(); // 调用命名空间 "B" 中的函数 "foo"
\B::foo(); // 调用全局空间中的类 "B" 的 "foo" 方法
// 如果类 "B" 未找到,则尝试自动装载类 "B"
// 当前命名空间中的静态方法或函数
A\B::foo(); // 调用命名空间 "A\A" 中定义的类 "B" 的 "foo" 方法
// 如果类 "A\A\B" 未找到,则尝试自动装载类 "A\A\B"
\A\B::foo(); // 调用命名空间 "A\B" 中定义的类 "B" 的 "foo" 方法
// 如果类 "A\B" 未找到,则尝试自动装载类 "A\B"
php命名空间规则解析及高级功能,PHP命名空间解析规则相关推荐
- beetl 获取html属性值,Beetl2.7.16中文文档(2)之高级功能
3. 高级功能 3.1. 配置GroupTemplate Beetl建议通过配置文件配置GroupTemplate,主要考虑到IDE插件未来可能会支持Beetl模板,模板的属性,和函数等如果能通过配置 ...
- 抓包工具fiddler都有哪些高级功能,一文带你全面了解它
介绍与安装 下载地址:官网自己下载 抓包设置 有时候,我们的fiddler启动是正常的,但是就是抓不到包,原因有很多.但多数情况都是因为配置不正确,接下来我们就看下有哪些导致fiddler抓不到的设置 ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序使用高级功能...
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第十二篇:为ASP.NET MVC应用程 ...
- Kutools for Excel 结合 300 多种高级功能和工具
Kutools for Excel 是一个方便的 Excel 插件,具有 300 多个高级功能,可将各种复杂的任务简化为 Excel 中的几次点击.例如,Excel 用户可以通过几次单击轻松组合工作表 ...
- PostGreSQL语法及高级功能(2022-06-08补充中)
PostGreSQL语法及高级功能 1 createdb ## 首先查看help root@dd50f020b9f4:/# createdb --help createdb creates a Pos ...
- Django by Example·第二章|Enhancing Your Blog with Advanced Features(为博客系统添加高级功能)@笔记
Django by Example·第二章|Enhancing Your Blog with Advanced Features(为博客系统添加高级功能)@笔记 这本书的结构确实很不错,如果能够坚持看 ...
- 【Hadoop】HDFS操作、数据上传与下载原理解析、高级特性及底层原理
HDFS操作.数据上传与下载原理解析.高级特性及底层原理 1 HDFS操作 1.1 Web Console网页工具 1.2 命令行 1.2.1 普通的操作命令 1.2.2 管理员命令 1.3 Java ...
- 混流(音视频SDK高级功能二)
1.简介 混流是把多路音视频流混合成单流的技术.本文讲述zego即构科技实时音视频SDK高级功能之一:混流功能,以iOS环境为例. 主播端和观众端均可主动触发混流.SDK 既支持音视频混流,也支持纯音 ...
- 苹果手机计算机怎么变高级,苹果手机中隐藏的7个高级功能
苹果手机一直都是非常受到群众的欢迎的,因为很多人觉得使用苹果手机和使用安卓手机给自己的感觉是不一样的,而且苹果手机的使用寿命比安卓手机长.但是很多人觉得苹果手机上的功能和安卓手机没有区别,其实只是你没 ...
最新文章
- linux 在执行命令过程中,反单引号(`)这个符号代表的意义为何?
- 一个牛逼的 多级缓存 实现方案!
- 非标准配置linux,剖析非标准波特率的设置和使用于Linux操作系统中
- 6kzz整合ueditor
- table control 光标定位控制
- mysql8.0.18用什么jdk_基础命令、cake-install、mysql远程登录、JDK安装
- SAP Spartacus自定义指令cxOutlet的工作原理
- protel布线需要注意事项
- jQuery 引用地址{包括jquery和google提供的地址}, 节省你不必要的流量
- 使用docker部署skywalking
- 3dmax 导出 fbx文件, 模型 到Unity中 贴图丢失
- 6.5 使用快捷键快速调整图表线条的宽度 [原创Excel教程]
- java-net-php-python-jspm新开路东总布小学编程类课程教学系统计算机毕业设计程序
- java高速公路系统_基于jsp的高速公路收费系统-JavaEE实现高速公路收费系统 - java项目源码...
- 银行间市场评论员文章词云绘制效果
- android 视频做背景图片,视频后面怎么加背景图片?安卓手机给视频添加背景图片的方法...
- shp文件中polyline是什么_shp文件的读取
- HiveHive创建数据库与创建数据库表
- Java程序员不得不了解的5款IDE神器
- 华为云物联网平台的微信小程序开发