首页 | 联系我们 | 叶凡网络官方QQ群:323842844
游客,欢迎您! 请登录 免费注册 忘记密码
您所在的位置:首页 > 新闻中心 > 行业新闻 > 正文

名扬互联:浅述PHP5.3中命名空间的使用方法

作者:cocomyyz 来源: 日期:2014-3-6 9:47:19 人气:1 加入收藏 评论:0 标签:

PHP5.3一个新的重要特性就是命名空间(namespac),就可以自动载入 Project_Module_User.class.php文件(虽然这样看起来并不方便多少),后来被取消并安排在PHP6中实现。而此次又再次“提前”PHP5.3发布,这一特性在PHP5.0x时候就提出过。可见开发人员对其的重视以及谨慎的态度。加入了新的关键字 namespac其应在类文件的开头官方发布时说明文档的内容可能已过期(documentmayboutdate所以在这里简单的说明命名空间的用法:首先是声明一个命名空间。

<?php

namespacProject::Module;  

classUser{

constSTA TUS_OK=true;

functionregist$data{

...

}

...

}

然后在控制器中(可能是其他文件)就可以这样调用

$user=newProject::Module::Us;  

$user->regist$register_info;

但是可以将两个相互独立的类联系起来。比方确与平常的并无两样。

Project::Module::User;  

Project::Module::Blog;

从而防止了保守”上的Project_Module_Blog这样冗长的命名方式。这样就能从语言自身更容易描述和理解变量、类之间的关系。新增加的us和 as关键字或许能更好的说明问题。us和 as语句可以引用和声明 命名空间的别名”比方,上面的说明可能很难说明使用命名空间带来了什么好处。上述的控制器中实例化类的代码可以这样写

useProject::Module;

$user=newModule::Us;  

$user->regist$register_info;

甚至

useProject::Module::UsasModuleUser;

$user=newModuleUser;  

$user->regist$register_info;

比如上述类中的STA TUS_OK就可以通过命名空间类中的常量也可以通过命名空间访问。Project::Module::User::STA TUS_OK 访问。进一步的也可以用别名简化那么长的变量名称”

useProject::Module::User::STA TUS_OKasSTA TUS_OK;

echoSTA TUS_OK;

顺便提下“超空间(TheGlobalNamespac概念。所谓的超空间”就是没有指定命名空间的变量、类和函数。比方

functionfoo{

...

}

可以使用 foo执行的同时,这的函数。也可以使用 ::foo;这样执行。配合使用 autoload函数即可载入指定命名空间的类。简单的函数如下最后。

function__autoload$classnam{

$classnam=strtolow$classnam;

DIRECTORY_SEPA RA TOR,$classnam=str_replac'::'.$classnam;

require_oncdirnam__FILE__.'/'.$classnam.'.class.php';

}

比如调用这样

__autoload'Project::Module::User';


本文网址:http://www.mingyangnet.com/html/hangye/1996.html
读完这篇文章后,您心情如何?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
更多>>网友评论
发表评论
编辑推荐
  • 没有资料