PHP命名空间

极速动力1年前帮助185

命名空间()也是一种组织代码的形式,在好多现代编程语言中都有相应的实现,如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();

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

相关文章

简洁、吸引、通顺的标题:轻松搭建网站服务器

web服务器架设软件,大致分两类:非容器(默认为linux)和容器(默认为linux)这两种架构都不需要额外的ide,都有自己的语言的。自己架设没有特别的门槛的 你能按时提交代码,调试,测试,运维,就...