PHP教程之第十四节--定名空间 -- Classes and Ob...
培训的第三阶段,开始接触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中那样.因为函数实在是太多了,慢慢的你就会知道,知道有这个函数就可以。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 基础有没有对学习php没有太大区别,关键是兴趣。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 Ps:以上纯属原创,如有雷同,纯属巧合 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
页:
[1]