在我们去开发大型的项目的时候,可能会需要非常多的文件,面向对象通过命名空间来解决我们的僵局,在命名空间中可以有类,函数与常量,只有const定义的常量命名空间才有效。命名空间的名字必须符合PHP命名的规则。
命名空间是逻辑上的定义,逻辑的名称 不是物理上的路径,Tp中为了寻址的方便把命名空间做成地址。
命名空间是一种封装事物的方法。
PHP 命名空间可以解决以下两类问题:
用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。其格式如下:
<?php
// 定义代码在 ‘MyProject‘ 命名空间中 namespace MyProject;
// ... 代码 ...
关于命名空间的使用:
PHP 命名空间中的类名可以通过三种方式引用:
1非限定名称,或不包含前缀的类名称,例如 $a=new foo(); 或 foo::staticmethod();。
2限定名称,或包含前缀的名称,例如 $a = new subnamespace\foo(); 或 subnamespace\foo::staticmethod();。
3完全限定名称,或包含了全局前缀操作符的名称,例如, $a = new \currentnamespace\foo(); 或 \currentnamespace\foo::staticmethod();。
命名空间的注意事项:
1最顶层的\表示的是公共空间
2namespace必须在最上面。
3命名是虚拟的空间,不是真实存在的目录,但是ThinkPHP的命名空间是真实的地址路径。
4当前文件中include具有命名空间的文件,不会改变当前文件的命名空间。
5use有两个作用 引入命名空间 引入类
原文:https://www.cnblogs.com/biruofeng/p/10577973.html