1.
PHP 命名空间可以解决以下两类问题:
-
用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
-
为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。
2.1定义命名空间
如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间
< ?php
// 定义代码在 'MyProject' 命名空间中
namespace MyProject;
// ... 代码 ...
2.2你也可以在同一个文件中定义不同的命名空间代码,
2.3在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。
所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。
2.4子命名空间:
与目录和文件的关系很象,PHP 命名空间也允许指定层次化的命名空间的名称。
因此,命名空间的名字可以使用分层次的方式定义:
<?php
namespace MyProject\Sub\Level; //声明分层次的单个命名空间
3.1PHP支持两种抽象的访问当前命名空间内部元素的方法,
__NAMESPACE__ 魔术常量和namespace关键字。
常量__NAMESPACE__的值是包含当前命名空间名称的字符串。
在全局的,不包括在任何命名空间中的代码,它包含一个空的字符串。
3.2常量 __NAMESPACE__ 在动态创建名称时很有用
4.1使用命名空间:别名/导入??