php use 操作符闲话
来源:互联网 发布:唐韦星追王晨星知乎 编辑:程序博客网 时间:2024/06/05 23:05
use 操作符类似于 C++ 中的 using 语句。
在 PHP 中,use 操作符完成的工作称之为取别名。具体可以分为:
- 为类名称使用别名
- 为接口使用别名
- 为命名空间名称使用别名
- PHP 5.6开始允许导入函数或常量或者为它们设置别名。
use 的用法并不难掌握,但这里基于如下例子特别谈两点。
假如在全局命名空间有一个名为 Another 的类,请问就下面的代码而言,$obj1 和 $obj2 分别是实例化的是哪个类?
<?phpnamespace foo;$obj1 = new Another;$obj2 = new \Another;?>
答案是 $obj1 实例化的是 foo\Another 这个类(如果这个类不存在就会报错);$obj2 实例化的是全局命名空间中的 Another 类。
而我刚开始基于自己 C++ 的基础,认为 $obj1 实例化是全局命名空间中的 Another 类。但事实是 PHP 的命名空间和 C++还是有区别的。
就上面的例子而言,一点是对类名的解析,一点就是全局空间。
PHP 的全局空间使用 \ 来表示,就是说如果我们要使用全局命名空间中的一个类,必须像 $obj2 那样,使用 \ 来限定这个类;因为在 php 中实例化一个类时,如果这个类名不是完全限定的,比如上面的 new Another,PHP会基于当前命名空间去解析这个类名,所以 $obj1 才会被解析为 foo\Another 的实例。
最后很有意思的一点是,当我们在一个命名空间中,调用全局命名空间中的函数时,如果该命名空间中没有同名函数,函数名并不需要使用前导 \ 对函数名进行限定。
<?phpnamespace foo;$r = func()?>
比如上面的代码,PHP 会调用全局命名空间中的 func 函数,而不是调用 foo\func;当然如果 foo 命名空间中定义了同名函数,这时如果还想调用全局命名空间中的 func 函数,还是需要使用前导 \ 对函数名进行限定的。
阅读全文
0 0
- php use 操作符闲话
- 闲话
- 闲话
- 闲话
- 闲话
- PHP手册-use关键字
- PHP 中的use关键字
- PHP 中的use关键字
- PHP 中的use关键字
- 148 php namespace & use
- PHP中use分析
- php 下use用法
- PHP操作符
- php比较操作符
- php instanceof操作符
- php操作符
- PHP 比较操作符
- PHP逻辑操作符
- Struts2配置文件详解
- 比特币原理整理(一)
- java主线程等待所有子线程执行完毕在执行
- win10下导jar包入Maven仓库出错的解决方法
- Learning to remove soft shadows
- php use 操作符闲话
- 通过View的OnClickListener监听机制的模型,来解析回调机制
- MAC 使用pycharm出现ImportError: No module named numpy 解决方法
- Python 3 之数据类型
- dos命令之 set (显示、设置或删除 cmd.exe 环境变量) 用法详解以及使用变量
- Hbase 行健设计原则(待完善)
- 为什么TCP连接的建立是需要三次,而断开却需要四次
- 自定义View之LayoutParams
- 避免大规模故障的微服务架构