您好,欢迎访问一九零五行业门户网

PHP 面向对象编程和设计模式 (5)_PHP教程

php高级程序设计 学习笔记 2014.06.12
命名空间概述
php 在 5.3.0 以后的版本开始支持命名空间。什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。在php中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:
php 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。下面是一个说明 php 命名空间语法的示例:
定义命名空间
虽然任意合法的php代码都可以包含在命名空间中,但只有三种类型的代码受命名空间的影响,它们是:类,函数和常量。命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。另外,与php其它的语言特征不同,同一个命名空间可以定义在多个文件中,即允许将同一个命名空间的内容分割存放在不同的文件中。当然你也可以在同一个文件中定义多个命名空间。
namespace myproject;class myclass{ #code...}
定义子命名空间:与目录和文件的关系很象,php 命名空间也允许指定层次化的命名空间的名称。因此,命名空间的名字可以使用分层次的方式定义:
namespace myproject\helper\http;class myclass{ #code...}
在同一个文件中定义多个命名空间:在同一个文件中声明多个命名空间有两种方式,不过在实际编程实践中,非常不提倡在同一个文件中定义多戈命名空间。这种方式的主要用于将多个 php 脚本合并在同一个文件中。下面列出第一种方法。
namespace myproject\helper\http;class myclass{ #code...}namespace myproject\helper\request;class myclass{ #code...}
不过强烈不建议使用这种方法,可以参考下面的大括号定义法:
namespace myproject\helper\http;{ class myclass { #code... }}namespace myproject\helper\request;{ class myclass { #code... }}
php 命名空间中的元素使用
在讨论如何使用命名空间之前,必须了解 php 是如何知道要使用哪一个命名空间中的元素的。类名可以通过三种方式引用:
使用命名空间:别名/导入
允许通过别名引用或导入外部的完全限定名称,是命名空间的一个重要特征。php 命名空间支持 有两种使用别名或导入方式:为类名称使用别名,或为命名空间名称使用别名。在php中,别名是通过操作符 use 来实现的。
注意php不支持导入函数或常量。
namespace foo;use my\full\classname as another;// 下面的例子与 use my\full\nsname as nsname 相同use my\full\nsname;// 导入一个全局类use \arrayobject;
名称解析规则
在说明名称解析规则之前,我们先看一些重要的定义:
名称解析遵循下列规则:
example 名称解析示例

http://www.bkjia.com/phpjc/781919.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/781919.htmltecharticlephp高级程序设计 学习笔记 2014.06.12 命名空间概述 php 在 5.3.0 以后的版本开始支持命名空间。什么是命名空间?从广义上来说,命名空间是一...
其它类似信息

推荐信息