PHP 5.3 的主要特性:命名空间-Php-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝30
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:243回复:0

  PHP 5.3 的主要特性:命名空间

楼主#
更多 发布于:2016-06-02 20:45

PHP 5.3 的一个新的主要特性即是

命名空间(namespace)。

PHP 5.3 的一个新的主要特性即是 命名空间(namespace)。

这一特性在 PHP5.0x 时分就提出过,后来被取消并安排在 PHP6

中完成。而这次又再次“提早”到了 PHP 5.3 发布,可见开发人员对其的注重以及谨慎的情绪。

官方发布时阐明文档的内容也许已过期(documentation maybe out

dated),所以在这里简略的阐明命名空间的用法:首先是声明一个命名空间,加入了新的关键词 namespace ,其应在类文件的最初

12345678

然后在控制器中(也许是其他文件)就能够这么调用

12

$user = new Project::Module::User();    

$user->register($register_info);

的确与往常的并无两样,可是咱们能够将两个彼此独立的类联系起来。比方

12

Project::Module::User;  

 Project::Module::Blog;

这么就能从语言自身更容易描绘和了解变量、类之间的联系,然后避免了“传统”上的

Project_Module_Blog 这么冗长的命名方法。

上面的阐明也许很难阐明运用命名空间带来了啥优点,新添加的 use 和 as

关键词或许能非常好的阐明疑问。use 和 as 句子能够引用和声明 命名空间的“别号”。比方,上述的控制器中实例化类的代码能够这么写

123

use Project::Module;     $user = new

Module::User();  $user->register($register_info);

乃至

123

use Project::Module::User as ModuleUser;     $user

= new ModuleUser;  $user->register($register_info);

类中的常量也能够经过命名空间拜访,比方上述类中的 STATUS_OK 就能够经过命名空间

1

Project::Module::User::STATUS_OK

拜访。进一步的,也能够用别号简化那么长的“变量称号”

12

use Project::Module::User::STATUS_OK as STATUS_OK;

    echo STATUS_OK;

趁便提下“超空间(The Global

Namespace)”的概念。所谓的“超空间”,即是没有指定命名空间的变量、类和函数。比方

123

function foo() {     ...  }

这的函数,能够运用 foo() 履行的一起,也能够运用 ::foo(); 这么履行。

最后,配合运用 autoload 函数即可载入指定命名空间的类。简略的函数如下

12345

function __autoload( $classname ) {     $classname

= strtolower( $classname );  $classname = str_replace( '::',

DIRECTORY_SEPARATOR, $classname );  require_once( dirname( __FILE__ ) . '/' .

$classname . '.class.php' );  }

这么,比方调用

1

__autoload('Project::Module::User');

就能够主动载入 Project_Module_User.class.php

文件(虽然这么看起来并不便利多少)。

优质IT资源分享社区为你提供此文。

本站有大量优质php教程视频,资料等资源,包含php基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看

php教程视频

优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客