通过命名空间可以解决名称冲突的问题。默认情况下,所有的常量、类和函数都是放在全局空间下的,命名空间通过关键词namespace
来定义一个新的命名空间,命名空间的代码必须放在所有代码之前。
1.命名空间的使用
在同一个文件中,可以创建不同的命名空间。
示例如下。在两个命名空间MyProject
和OtherProject
里面都定义了Animal
类,但是并未发生冲突。
<?php
namespace MyProject{
class Animal{}
}
namespace OtherProject{
class Animal{}
}
?>
2. 子命名空间
命名空间和目录文件类似,允许指定层次化的命名空间。
示例如下。在MyProject
里还有sub
,sub
里还有name
。
<?php
namespace MyProject\sub\name{
$a = 'Hello';
}
?>