概述
什么是命名空间呢? 这个概念我第一次知道是在C++中.
首先, 为什么要用到命名空间呢? 当然是为了解决重名的问题了, 其实命名空间和Java中的包有着异曲同工之妙, Java中 a包下的Test类, 和b包下的Test类是两个类, 在使用的时候import不同包下即可, PHP中 a命名空间下的Test类,与b命名空间下的Test类也是两个类.
好了, 看PHP命名空间的简单应用:
是不是很简单?
但是我有如下问题?
- 不指定命名空间时, 如何?
- 不将类use进来,直接创建,如何?
- 若要引入不同命名空间的同名类, 如何?
问题解决
- 当不指定命名空间时, 为全局空间,公共空间
- 不讲类use进来, 直接创建时, 将在当前命名空间下寻找
- 引入不同命名空间的同名类时, 可以使用别名来区分同名类
总结
PHP中命名空间与文件所处路径是没有关系的, 使用时, 最方便的就是直接使用根路径进行引入, 如果使用相对路径, 可能会混淆
其实, 就将命名空间当作路径来使用就可以了, 当使用类时, ‘\xx’ 为绝对路径, ‘xx’为相对路径(use时不用), 其实想想并不是很绕