定义命名空间
命名空间通过关键字 namespace
来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间:
<?php
namespace MyProject;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
定义子命名空间
与目录和文件的关系很象,PHP 命名空间也允许指定层次化的命名空间的名称。因此,命名空间的名字可以使用分层次的方式定义:
<?php
namespace MyProject\Sub\Level;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
上面的例子创建了常量MyProject\Sub\Level\CONNECT_OK
,类 MyProject\Sub\Level\Connection
和函数 MyProject\Sub\Level\connect
。
一个文件,多个空间
在实际编程中,不提倡在同一个文件中定义多个命名空间。
<?php
namespace MyProject;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
namespace AnotherProject;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
或者使用以下方式:
<?php
namespace MyProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
namespace AnotherProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
?>