仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1982|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之第十四节--定名空间 -- Classes and Ob...

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:15:26 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
培训的第三阶段,开始接触MYSQL,设计数据库,学习PHP如何去连接MYSQL数据库。对于MYSQL,我并不陌生,因为学校开设了Linux系统的课程,对于数据库的操作。object|php5|定名空间   /*
+-------------------------------------------------------------------------------+
| = 本文为Haohappy读<<Core PHP Programming>>
| = 中Classes and Objects一章的笔记
| = 翻译为主+团体心得
| = 为防止能够产生的不用要的费事请勿转载,感谢
| = 接待品评斧正,但愿和一切PHP喜好者配合前进!
+-------------------------------------------------------------------------------+
*/

第十四节--定名空间

定名变量,函数和类是挺坚苦的,除要思索到变量的称号要易于了解,还要忧虑是不是这个称号在其它某个中央已利用过. 在一小段剧本中,第二个成绩是根基成绩. 当你思索重用你的代码, 在这以后的项目代码必需防止利用你用过的定名. 凡是来讲,可重用的代码老是包括在函数或类中, 需求处置很多能够产生的定名抵触. 但函数和类之间也能够产生定名抵触. 你可以测验考试防止呈现这类情形,经由过程在一切类前添加前缀的办法,或你可使用namespace语句.

Namespace关头字给一块代码定名. 在这个代码块内部,剧本必需用操作符::加上定名空间的称号来援用这个代码块. 援用静态的类成员也是用不异的办法. 在定名空间内代码不需求声明定名空间, 它自己就是默许的. 这类办法比添加前缀的办法好. 你的代码可由此变得加倍紧凑和可读.

你能够想晓得是不是可以创立分层的(嵌套的)定名空间. 谜底是不成以. 但你可以在定名空间称号后加上冒号, 你可以再次挪用在称号中不包括冒号的变量,函数和类. 定名空间答应存在冒号,只需不是第一个字符和最初一个字符或接着另外一个冒号. 定名空间的称号中的冒号关于PHP来讲没有任何意义, 但假如你用他们来辨别逻辑上的区块, 他们可以很好地申明你的代码中的父子(parent-child)关系.


/* 注: 便可以利用如许:
namespace animal:dog {}
namespace animal:pig {}

用冒号来讲明parent-child关系.
*/


你能够在一个定名空间语句内没有包括函数,类或常量界说之外的任何器材. 这将禁止你利用他们来改善旧的利用全局变量的函数库. 定名空间最合适于面向对象. 定名空间内的常量与类中的常量利用不异的语法.

例子6.17显示了若何利用定名空间.

Listing 6.17 Using a namespace
<?php
namespace core_php:utility
{
class textEngine
{
public function uppercase($text) //大写
{
return(strtoupper($text));
}
}

//make non-OO interface 创立一个非OO的接口
function uppercase($text)
{
$e = new textEngine;
return($e->uppercase($text));
}

}

//test class in namespace 测试定名空间中的类
$e = new core_php:utility::textEngine;
print($e->uppercase("from object") . "<br>");

//test function in namespace 测试定名空间中的函数
print(core_php:utility::uppercase("from function") . "<br>");

//bring class into global namespace 把类导入全局定名空间
import class textEngine from core_php:utility;
$e2 = new textEngine;
?>



Import语句把定名空间中的某个部分导入全局的定名空间.
要导入单一的定名空间的成员,可以指定类型为constant,function或class,接着写上成员的称号;
//如import class XXX
假如你想导入某一特定类型的一切成员,你可以用*来取代称号;
//如 import constant * 导入一切常量
假如你想导入一切类型的一切成员,用*便可.
//如 import *

在成员以后,用from关头字加上定名空间的称号.
//如 import class textEngine from core_php:utility;

总之你要写成像import * from myNamespace或 import class textEngine from core_php:utility如许的语句,就像例6.17中那样.  因为函数实在是太多了,慢慢的你就会知道,知道有这个函数就可以。
山那边是海 该用户已被删除
沙发
 楼主| 发表于 2015-2-4 10:10:25 | 显示全部楼层
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-21 16:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表