PHP命名空间
命名空间()也是一种组织代码的形式,在好多现代编程语言中都有相应的实现,如C#、Java(称为包,)等。
使用命名空间,可以在小型项目中更有效地对各类功能代码进行封装和管理,非常是在有同名的类等编程元素的时侯,通过不同的命名空间,可以有效地将它们分辨,防止同名资源带来的一系列问题。
到现今为止,我们的php代码都没有定义命名空间,此时,这种代码称为全局代码;假如我们须要将代码定义到命名空间中,可以使用如下格式(/myns.php文件)。
php
namespace myns
{
class ClsA
{
public function work()
{
echo __METHOD__;
}
}
}
?>
定义命名空间时使用关键字,并将资源包含在一对花括弧内;假如命名空间有更多的层次,可以使用“\”符号进行分隔,如“a\b\c”。
将资源定义在命名空间中之后,在其它页面中,我们可以使用如下方式引用这个类。
php
require_once _SERVER["DOCUMENT_ROOT"]."/ns.php";obj = new \myns\ClsA();
$obj->work();
?>
假如在一个页面中须要多次使用这个类,我们可以定义这个类的别称以简化类名的书写,此时,可以使用use句子,如下边的代码。
_SERVER["DOCUMENT_ROOT"]."/ns.php";
use \myns\ClsA;obj = new ClsA();
$obj->work();
?>
若果出现同名资源,我们还可以给它们定义不同的别称,这儿应当在use句子中添加as关键字指定别称,如:
use \myns\ClsA as ClsA1;
$obj = new ClsA1();
据悉,在代码中,我们可以使用常量获取代码所在的命名空间,而全局资源是没有命名空间的。