仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1956|回复: 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 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
谁可相欹 该用户已被删除
板凳
发表于 2015-2-7 00:59:33 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
不帅 该用户已被删除
地板
发表于 2015-2-12 01:51:18 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
活着的死人 该用户已被删除
5#
发表于 2015-3-3 18:17:10 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
蒙在股里 该用户已被删除
6#
发表于 2015-3-11 12:05:03 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
透明 该用户已被删除
7#
发表于 2015-3-17 00:07:59 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
小妖女 该用户已被删除
8#
发表于 2015-3-17 22:10:20 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-25 03:35:08 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
乐观 该用户已被删除
10#
发表于 2015-3-27 20:09:45 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
海妖 该用户已被删除
11#
发表于 2015-3-28 04:21:50 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
12#
发表于 2015-4-6 10:31:22 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
爱飞 该用户已被删除
13#
发表于 2015-4-7 15:17:36 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
再现理想 该用户已被删除
14#
发表于 2015-4-12 16:56:16 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
再见西城 该用户已被删除
15#
发表于 2015-4-14 11:00:48 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
老尸 该用户已被删除
16#
发表于 2015-4-21 23:11:44 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
小女巫 该用户已被删除
17#
发表于 2015-4-28 18:26:06 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
柔情似水 该用户已被删除
18#
发表于 2015-4-30 02:27:48 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
若相依 该用户已被删除
19#
发表于 2015-5-1 03:11:43 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
小魔女 该用户已被删除
20#
发表于 2015-5-3 02:30:11 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-30 10:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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