之所以使用命名空间,是因为它可以预防类、接口、函数和常量的冲突。命名空间可以标识某个定义或标识符的上下文环境,一个标识符可以在多个命名空间中定义,它在不同命名空间的含义是互不相干的,可类比于文系统的目录。但是PHP的命名空间并不是文件目录,或者说和文件目录没有实质上的联系。
关于PHP的命名空间的介绍在PHP官方文档已经介绍得十分详细了,这里不再多说。这里介绍一下当开始接触PHP命名空间是所遇到的一些困惑。
use就相当于一种声明,并不解析和加载。也就意味着还是得用require或者include将文件包含进来,或者使用autoload自动加载。
正因为需要进行文件包含,而不是直接通过命名空间进行加载,所以PHP文件的命名空间声明和文件在磁盘中的实际位置并没有关联。
如果不声明命名空间,则默认为全局命名空间。