PHP命名空间

命名空间(namescript)也是一种组织代码的方式,在很多现代编程语言中都有相应的实现,如C#、Java(称为包,package)等。

使用命名空间,可以在大型项目中更有效地对各种功能代码进行封装和管理,特别是在有同名的类等编程元素的时候,通过不同的命名空间,可以有效地将它们区分,避免同名资源带来的一系列问题。

到现在为止,我们的PHP代码都没有定义命名空间,此时,这些代码称为全局代码;如果我们需要将代码定义到命名空间中,可以使用如下格式(/myns.php文件)。

<?php  
namespace myns  
{  
    class ClsA  
    {  
        public function work()  
        {  
            echo __METHOD__;  
        }  
    }  
}  
?>

定义命名空间时使用namespace关键字,并将资源包含在一对花括号内;如果命名空间有更多的层次,可以使用“\”符号进行分隔,如“namespace a\b\c”。

将资源定义在命名空间中以后,在其它页面中,我们可以使用如下方法引用这个类。

<?php  
require_once _SERVER["DOCUMENT_ROOT"]."/ns.php";obj = new \myns\ClsA();  
$obj->work();  
?>

如果在一个页面中需要多次使用这个类,我们可以定义这个类的别名以简化类名的书写,此时,可以使用use语句,如下面的代码。

<?php  
require_once _SERVER["DOCUMENT_ROOT"]."/ns.php";  
use \myns\ClsA;obj = new ClsA();  
$obj->work();  
?>

如果出现同名资源,我们还可以给它们定义不同的别名,这里应该在use语句中添加as关键字指定别名,如:

use \myns\ClsA as ClsA1;  
$obj = new ClsA1();

此外,在代码中,我们可以使用 NAMESPACE 常量获取代码所在的命名空间,而全局资源是没有命名空间的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程