概述
广义上来说,命名空间是一种封装实物的方法;
例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。
在PHP中,命名空间用来解决在编写类库或程序时创建可重用的代码,用于解决以下问题:
1)用户编写的的代码,与PHP内部的类/常量/第三方类/函数/
常量之间的名字冲突;
2)为很长的标识符名称,创建一个别名,提高代码的可读性;
基本使用
通过关键namespace
来声明。
1)namespace MyPro1;
/*内容*/
2)namespace MyPro2{
/*内容*/
};
注意:
如果一个文件中包含命名空间,必须在所有代码之前声明命名空间。
例子
<?php
namespace A;
function time()
{
echo '这是属于我的time方法';
}
namespace B;
function time()
{
echo '这是属于我的time方法2';
}
time(); // namespace B time()
\A\time(); // namespace A time()
\B\time(); // namespace B time()
echo \time(); // 系统的 time()
子命名空间
使用
namespace Father/Son;
例子
<?php
// 使用命名空间例子2
namespace A;
function time()
{
echo '这是属于我的time方法';
}
namespace B;
function time()
{
echo '这是属于我的time方法2';
}
time(); // namespace B time()
\A\time(); // namespace A time()
\B\time(); // namespace B time()
echo \time(); // 系统的 time()