基本信息
- 原书名:PHP 5 Power Programming
- 原出版社: Prentice Hall PTR
- 作者: (美)Andi Gutmans Derick Rethans
- 译者: 简张桂
- 出版社:电子工业出版社
- ISBN:9787121050787
- 上架时间:2008-1-16
- 出版日期:2007 年12月
- 开本:16开
- 页码:689
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 网络编程 > php
编辑推荐
PHP5首席设计师Andi Gutmans,PEAR创始人Stig Saether Bakken,PHP核心贡献者Derick Rethans三大高手合力而作;.
PHPChina开源社区负责人, Zend中国技术支持中心技术总监简张桂全力翻译..
PHP5顶尖专家、Zend Engine的创始人之一Zeev Suraski;PHPChina开源社区创始人,Zend中国技术支持中心总经理耿志军倾力推荐。...
内容简介
作译者
STIG SAETHER BAKKEN,也是PHP核心团队的一位成员,创造了PEAR:PHP扩展和应用库,它是为了可复用的PHP组件而开发的框架和全球的发布系统。
DERICK RETHAN,是一个PHP代码贡献者也是PHP的QA团队的领导者。
目录
前言
第1章 PHP 5新特性
1.1 介绍
1.2 语言特性
1.3 PHP改进概述
1.4 其他的PHF 5新特性
1.5 总结
第2章 PHP 5基础语言
2.1 介绍
2.2 嵌入HTMI
2.3 注释
2.4 变量
2.5 基础数据类型
2.6 运算符
2.7 控制结构
2.8 函数
2.9 总结
第3章 PHP 5面向对象语言
3.1 介绍
译者序
在最近的几年中,PHP已经发展成为了世界上最为流行的Web平台,它运行在全球超过1/3的Web服务器上。PHP的发展不仅是数量上的,还有质量上的。越来越多的公司,包括财富杂志全球500强排行榜上的公司,都依靠PHP来运行他们的商业级的应用,从而创造了新的就业机会并增加了对PHP开发者的需求。
同样,在中国的互联网领域中,经历了2003年的低迷后,2005年迎来了PHP发展的黄金时期。据近期PHPChina的调查资料显示:国内排名前500名的网站中,有262家使用了PHP,而排名前10名的网站中有包括各大老牌门户网站在内的8家网站使用了PHP,如百度、腾讯、新浪、搜狐、Tom、网易等。在北京、上海、广州、武汉、重庆、厦门、杭州等地陆续出现PHP程序员紧缺的现象。尤其是在北京、上海、广州三地,许多新互联网公司采用PHP进行快速开发,大量的PHP岗位需求涌现出来,人们高呼PHP的时代已经来临。
因此,在这个互联网迅猛发展、技术日新月异的时代,学会并应用好一门流行的语言对于广大互联网行业中的程序员来说至关重要。当然,许多优秀的程序员都选择了PHP,虽然它曾经被认为是草根语言而无人问津,虽然它曾经在2003年备受冷落,但是它针对互联网的Web开发量身定做的语言特性注定了它能够在Web 2.0大潮来临的时候绽放出应有的光彩。
很幸运,我目睹了PHP崛起的全过程。而且在Zend中国技术支持中心的工作让我第一时间感受到各大互联网公司在PHP应用上的规模和他们对PHP的信任。尤其是最近PHP社区宣布放弃PHP 4的功能更新表明PHP社区将再次全面提升和推广PHP,我想对于每一个热爱PHP的人来说,都会因此而倍感兴奋。为此,我也希望这本《PHP 5权威编程》能够帮助大家重新认识PHP。
4月份提笔至今已经4个多月了,也许是幸运女神眷顾,本书的翻译工作终于在5个月之内独立完成。现在回想起来,连我自己都有点不敢相信。当译完最后一章的时候,看着厚厚的原著已被译成中文真是兴奋极了,那种成功后的喜悦,重负后的释然感受实在是太强烈了。
可以说,虽然本书没有涵盖所有的PHP知识,但是它可以让你深入了解PHP及其特性,最重要的是它让你明白PHP到底是什么,以及它的发展方向。当然,本书最主要的作用还是介绍PHP 5的新特性。相信大家都听说了前段时间PHP社区宣布将在年底停止PHP 4的功能更新并鼓励大家迁移到PHP 5的消息了吧。可能是一种巧合,《PHP 5权威编程》英文版在2004年就出版了,但是一直到现在才出版中文版,而正在译稿的排校阶段,PHP社区发布了这个通告。所以,当人们正企盼深入了解PHP 5的时候,本书能够及时地出现并且帮助大家。
《PHP 5权威编程》一共分为16章和3个附录。虽然该书的这19个部分以PHP 5为主,但是我想它也是第一本系统介绍PHP的中文书。不过,由于它的第一使命是介绍PHP 5,因此它其章节分布不一定符合初学者的习惯。大家不妨先从了解PHP 5开始,从而进一步全面了解PHP。
为了帮助大家有效地阅读本书。在此为大家粗略地介绍一下16章的主要内容。
第1章介绍PHP 5的新特性,主要讲述PHP 5内核中新加入的面向对象模块和一些扩展,以及一些更换了底层的扩展。
本书的第2章是一个铺垫,这是为刚刚开始了解PHP的人准备的。从这可以看出原著者为读者考虑得比较周到。当然,如果你已经具备了一定的使用PHP的经验,可以不阅读本章。当然,如果阅读本章,你可以更加彻底地了解PHP的运行模式。
第3章开始从面向对象的模块介绍PHP 5的新特性,其中描述了面向对象在PHP 5中的一些重大改变,例如对象赋值不再是拷贝整个对象而是赋值对象的句柄。本章还阐述了作这些改变的原因及所带来的效益。
接下来在第4章中,开始介绍高级的面向对象的特性和PHP中4个最重要的设计模式。从而让大家了解到PHP 5之所以要把面向对象写入内核就是为了要提供这些特性,而大家也会发现这才是PHP 5支持面向对象的真正原因。另外,该章没有描述全部面向对象的思想,如果大家想了解这方面的内容,可以阅读专门的讲述面向对象的著作。
前面4章阐述了一些语法知识之后,在第5章中,作者描述了PHP是如何构建Web应用的。本章主要描述一些安全、用户交互等技术,最后还描述了一般架构、一个Web应用代码分布的知识。阅读本章可以让读者了解B/S架构应用的一些特点。
第6章着重讲述了在PHP 5中连接数据库方面的一些改进。由于在大多数Web应用中都存在数据库的连接和处理。因此,作者在本书中描述具体的扩展功能时首先就讲到了数据库连接。本章阐述了MySQL为PHP编写的支持新的MySQL特性的mysqli扩展和PHP 5自带的轻便的小数据库SQLite,最后还用了一定的篇幅讲述PEAR中的DB包。..
通常接下来人们就要开始调试一些代码了,因此作者编写了错误处理的章节,系统讲解PHP的各种错误处理,尤其是增加了用E_SCRIPT这个错误类型来检测版本之间兼容性错误的方法。最后,本章还讲述了PEAR的错误处理和PHP 5新增加的异常处理。
第8章中描述的XML的支持对于PHP来说也是至关重要的,因为目前互联网发展的趋势是寻求更大范围的资源互动与资源共享,能否支持好XML处理将会影响PHP的推广速度,所以PHP开发团队在开发PHP 5的时候同样也考虑了对XML支持的升级。本章描述了原来的SAX对XML的支持和新的SIMPLEXML。另外,本章还讲述了一些PEAR的XML处理及XML转换和通信的功能,最后介绍了PHP 5引入的对SOAP的支持。
第9章中值得大家重点关注的是其对流的阐述,这是我觉得国内目前大部分PHP爱好者平时所忽略的知识。但是个人认为这其实是PHP的一个非常重要的特性,而该特性正是迎合互联网需要的技术特性。此外,本章还讲述了一些PHP主要的扩展,包括了正则表达式、日期处理、GD处理和多字节语言的处理(例如中文的处理)。其中,最后一个部分我想对于我们国内的PHP程序员来说是非常重要的。
从第10章起,本书开始讲述PEAR。值得注意的是,本书足足用了3章来阐述关于PEAR的内容。由此可见PEAR对PHP的重要性,但是国内很多PHP程序员并不是很重视PEAR。其实PEAR对于PHP的推广和使用来说是非常重要的。我估计PHP能够快速发展起来PEAR起到了不可替代的作用,如果没有PEAR就没有这么活跃的PHP社区。所以当时社区开发PEAR这个代码共享的项目是非常明智的。同时在PHP 5的新版本中,PEAR的地位也更加重要。人们因为PEAR才更加广泛地使用PHP。因此,通过第10、第11和第12章,能学习到如何使用PEAR、一些重要的PEAR包和如何创建自己的PEAR包。大家可以真正认识PHP发展的强大动力,并且了解到如何参与进去。
第13章的内容用来帮助大家做PHP代码的版本迁移。本章对于许多想采用PHP 5来更换PHP 4的人来说是非常重要的。它重点描述了在两个版本面向对象代码编写中的一些区别。另外它还描述了PHP引入的E_SCRIPT错误类型是如何帮助大家做代码迁移的。最后本章还描述了其他兼容性问题和函数的一些更改。
前言
——Richard Whately
开始
8年前,Rasmus Lerdorf开始开发PHP/FI。他不会想到他创建的语言最终在今天发展成为我们所看到的PHP开发,并正被几百万人使用着。它的第一个版本是“PHP/FI”,叫做个人主页工具/表单解释程序,在1995年的时候它还只是Perl脚本的集合。它的基本特性之一就是它是一个类似Perl的语言,可以用来处理表单提交,但是它缺乏许多常用且有用的语言特性,例如for循环。
PHP/FI 2
在1997年,PHP/FI 2再版出现了,但是那时开发工作几乎是Rasmus独自承担的。那年11月它发布时,Andi Gutmans 和 Zeev Suraski因为寻找一个用来开发一个大学项目的电子商务解决方案而采用了PHP/FI。他们发现PHP/FI并不是像它看起来那样强大,而且它的语言还缺少许多常用的特性。其中包括的一个非常有趣的部分就是while循环执行的方式。手工编写的语法扫描器会遍历整个脚本,并且当它发现while关键字时,它会记住while在文件中的位置。在循环结束时,文件指针将返回保存的位置。而整个循环被重新读取并且重新执行。
PHP 3
Zeev 和 Andi 决定完全重新编写这个脚本语言。他们因此与Rasmus组成新的团队来发布PHP 3,而且这个语言因此出现了一个新的名字:PHP(Hypertext Preprocessor)。为了强调PHP是一个不同的产品而且不仅仅适合个人使用,Zeev 和 Andi还设计并且实现了一个新的扩展API。这个新的API使得该语言可以轻松地支持外部的扩展以便执行其他一些任务,例如访问数据库、拼写检查和其他技术,这也吸引了许多非“核心”组的开发者参与进来并且为PHP项目贡献力量。在PHP 3发布的1998年6月,统计出的PHP安装的基数已经将近5万个域名。PHP进入了真正突飞猛进的阶段,PHP 3是第一个安装量超过100个域名的版本。
PHP 4
在1998年末,Zeev 和 Andi回顾他们在PHP 3中所做的工作并且感觉到他们可以将该脚本语言编写得更加出色,所以他们重新开始编写。当PHP 3仍然需要在脚本执行时连续地解析脚本时,PHP 4带来了一个新的“先编译,再执行“的理念。编译的步骤不是把PHP脚本编译到机器码;而是把它们编译到字节代码,后者可以接下来被Zend Engine执行(Zend表示Zeev和Andi),这也是新的PHP 4的核心。因为这个新的执行脚本的方式,PHP 4的性能比PHP 3提高了许多,而且你只需要一个很小的向后兼容包。其他的改进包括一个改进的具备更好的实时运行性能的扩展API、一个可以让PHP 4运行在大多数流行的Web服务器的Web服务器抽象层等。PHP 4官方版发布时间是2002年5月22日,今天,它的安装基数已经超过了1500万域名。
在PHP 3中,副版本号(中间的数字)从来没有使用过,而且所有的版本都命名为3.0.x。这在PHP 4中有了变化,副版本号被用来表示语言中重要的改变。第一个重要的改变出现在PHP 4.1.0版,它引入了超级全局数组$_GET和$_POST。超级全局数组可以在函数中访问到而且不需要使用global关键字。增加该特性是为了关闭register_globals这个INI选项。register_globals是PHP中一个特性,它可以自动地把输入变量转变成一个PHP变量,例如把类似"?foo=bar"的数据转变为变量$foo。因为许多人都不检查输入变量的正确性,所以许多应用存在安全隐患,使得很容易就可以突破安全防护或者获取认证代码。
在2002年4月22日,通过采用新的超级全局数组,默认关闭register_globals的PHP 4.2.0发布了。PHP 4.3.2,最后一个重大的PHP 4版本是在2002年12月27日发布的。这个版本引入了命令行接口(CLI)、一个修补文件和网络I/O层(叫流),还有一个绑定的GD库。虽然大多数这些增加的功能对于最终用户来说不一定有实用价值,但是版本号还是会随着PHP内核中主要编号的改动而改动。
PHP 5
很快,人们对常用面向对象特性的需求开始急速增加,而且Andi也有了重新编写Zend 引擎中面向对象部分的想法。因此Zend 和 Andi编写了“Zend Engine II: Feature Overview and Design”文档并且引起了关于PHP未来的热烈讨论。虽然基本语言保持不变,但是许多特性在考虑PHP 5中被增加、删除或更改。例如,命名空间和多继承都是在原始文档中曾经提到的,但是从来没有出现在PHP 5中。多继承因为采用了接口所以被取消了,而命名空间被完全取消了。你可以在“PHP 5新特性”一章中找到新特性的完整列表。
PHP 5被期待维持甚至是提高PHP在Web开发市场中的领先地位。不仅仅是因为它更新了PHP的面向对象的支持。还因为它还包含了许多新的特性,可以让它成为最终的Web开发平台。在PHP 5中重写了XML的功能并在一些领域达到了其他Web技术的平均水平甚至在其他一些领域超过它们,尤其是新的SinpleXML扩展使得它可以非常轻松地处理XML文档。另外,新的SOAP、MySQLi和其他的多个扩展对于PHP支持的其他相关技术来说都是重大的里程碑。
声明
本书是一本介绍PHP 5中新的高级特性的书。它是为想要转移到使用PHP 5的PHP程序员编写的。虽然第2章“PHP 5基础语言”包含了PHP 5的语法介绍,但它只是供PHP程序员参考而不是写给新程序员的入门手册。但是,具备用其他高级语言编程经验的Web开发者可能会发现,事实上本手册已包含他们有效地使用PHP 5所需要的基本知识。
章节概述
第1章“PHP 5新特性”讨论PHP 5中的新特性。其中大多数新特性是用来处理面向对象特性的,每个特性都包括一个小例子。它还提供了一个PHP 5中的新扩展的概述。本章提到的大多数主题在后续的章节中都有详细的讲解。
第2章“PHP 5基础语言”向那些对PHP不熟悉的人介绍PHP的语法。所有的基础语言架构和变量类型都通过简单的例子进行了解释,给读者提供了创建真实脚本需要了解的创建模块。
序言
从2005年发起PHPChina社区开始,伴随着中国PHP社区的发展和壮大,我们也看到了PHP在国内的迅速发展和繁衍。非常好的现象就是:经过爱好者的大力支持,在中国,PHP终于开始浮出水面,成为一个主流开发语言,而不是原来那种纯粹的民间形式的发展技术。特别是2007年,在众多的技术会议上,PHP开始在主流语言中占得一席之位,大家可以在大大小小的研讨会上听到讨论PHP的声音,甚至有了一个全国性的PHP研讨组织——PEA,各种培训机构也开始设立PHP的专业课程,很多业内人士都说PHP人才炙手可热。PHP作为一种社区开源语言,能够取得今天的地位,的确是一个奇迹,它靠的是自身的生命力和社区中的每一位贡献者的努力。PHP与其他的语言不同,它不属于任何一家公司,而更多地代表一种精神,一种奉献和索取并存的开源精神。正是这种精神,让PHP成为流行的开发语言,且给PHP本身带来了无限的生命力。
对于国内第一本PHP 5的专业书,首先引用PHP Community 官方正式发布的一个消息:“PHP开发小组宣布只在2007年年底之前继续支持PHP 4。2007年12月31日以后,将没有PHP 4.4的后续版本。我们将在具体问题具体解决的基础上继续发布可用的重要安全补丁,直到2008年8月8日。请利用今年剩余的时间使你的应用可以顺利地运行在PHP 5环境中。”
PHP 4以前的版本要逐渐淡出我们的视线了,未来将是PHP 5时代,PHP 6也将慢慢地浮现出来,虽然我们的调查结果表明PHP 4及更早版本还是目前最广泛使用的版本,约80%的PHP用户使用它,PHP 5用户仅占20%,但是,无论如何PHP 5的时代来临了,其使用率正在快速上升,也许两年后,PHP 4的辉煌时代就会成为历史,而PHP 5将是新一代的宠儿。..
在国内,2005年设立PHPChina,做PHP推广的时候,我走访了几十家公司,仅仅有一家公司说他们用PHP 5开发网站。但是今天我拜访采用PHP作为开发语言的公司,几乎有2/3的公司说他们开始准备迁移到PHP 5。PHP在2005年还是那么的神秘,工程师经常提的问题是PHP 5中的面向对象的问题,如今很多人开始关注PHP 6,关注PHP 6能给大家带来什么更加新颖的东西。但是我们发现,PHP 5的深度使用还远远不够,多数网站还局限在PHP 4的应用上,PHP 5只是一个探讨,很多产品和网站并没有完全迁移到新的版本上来。原因很多,无论是国内接受新技术要滞后一些,还是产品的更新周期要更长一些,甚至大家学习的途径还比较单调等,都是我们PHP 5应用在国内还仅仅是开始的原因吧。在市场学中,非常讲究“First Mover”,在技术领域也是一样的,谁掌握PHP 5,谁就是PHP领域中的“First Mover”。
本书英文版刚刚上市,就在国外快速流行起来。我记得此书出版不久,Andi就告诉我这本书的下载次数超过了百万。更多的书都是依据PHP 4来撰写的,真正意义上的PHP 5书籍市场上并不多见,此书正是完全意义上的第一本PHP 5技术书。此书的原作者之一的Andi也是很权威的人,他是Zend Engine的核心创造者,PHP 3的主要发起人,Zend公司的CTO。我们有理由认为他写的有关PHP 5的新技术正是对PHP版本发展的一个指引。对于每一位热爱和支持PHP的技术人员来说,应该是一本突破自我和提升技术水平的很好的读物。
此书译者和我同事多年,在PHPChina开源社区发起的时候,他就是网站的管理者,同时也是Zend公司在国内培养的第一位技术支持人员,我对他的翻译质量很有信心。以前看过很多翻译的技术书籍,都是技术上外行的纯翻译人员制作的,往往很难准确传达书中的技术内涵。但这本书是一位资深的PHP内行翻译的,读起来很是流畅和易懂,它将会是一本很好的PHP 5教材。
最后引用PHP圈子里经常说的一句话:
Happy PHPing!
耿志军
Zend中国技术支持中心 总监...
媒体评论
——Zeev Suraski,PHP 5设计者之一、Zend引擎创始人之一..
“本书英文版刚刚上市,就在国外快速流行起来。我记得此书出版不久,Andi就告诉我这本书的下载次数超过了百万。更多的书都是依据PHP 4来撰写的,真正意义上的PHP 5书籍市场上并不太多,此书正是完全意义上的第一本PHP5技术书。”
——耿志军,PHP China创始人...
【插图】
