PHP 命名空间(namespace)是在 PHP 5.3 中加入的,目的是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。
?
PHP 命名空间可以解决以下两类问题:
?
用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
定义命名空间
默认情况下,所有常量、类和函数名都放在全局空间下,就和PHP支持命名空间之前一样。
?
命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。
?
语法格式如下:
?
<?php ?
// 定义代码在 'MyProject' 命名空间中 ?
namespace MyProject; ?
?
// ... 代码 ... ?
你也可以在同一个文件中定义不同的命名空间代码,如:
?
<?php ?
namespace MyProject;
?
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?
namespace AnotherProject;
?
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?> ?
不建议使用这种语法在单个文件中定义多个命名空间。建议使用下面的大括号形式的语法。