php v5.3.0 新特性详解

php v5.3.0 新特性详解

ID:26152612

大小:166.00 KB

页数:14页

时间:2018-11-25

php v5.3.0 新特性详解_第1页
php v5.3.0 新特性详解_第2页
php v5.3.0 新特性详解_第3页
php v5.3.0 新特性详解_第4页
php v5.3.0 新特性详解_第5页
资源描述:

《php v5.3.0 新特性详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、考察的特性本文主要考察PHPV5.3的以下特性:·延迟静态绑定·名称空间·类方法重载·变量解析和heredoc但是,在继续之前,需要设置PHPV5.3。设置PHP广为人知的一个特点就是设置起来有点麻烦。这也许是因为PHP是安装在Web服务器(例如Apache)上的,而且常常需要连接到外部数据库(例如MySQL)。而且,某种意义上,PHP脚本是嵌入在HTML代码中的。换句话说,PHP这种技术横跨多个复杂的领域。所以,在编写PHP脚本代码之前,必须越过很多的障碍。我希望可以改善这一现状,但是与软件技术有关的很多事情仍然很困难。不过,对于

2、那些使用AppleMacs的幸运读者来说,设置过程再简单不过了:1.获得PHP二进制安装文件(http://www.entropy.ch/software/macosx/php/)。1.在SystemPreferences中关闭WebSharing。2.找到/etc/apache2/httpd.conf文件。3.在httpd.conf文件中注释掉下面这行:LoadModulephp5_module。4.运行PHPV5.3安装文件(如果您愿意,也可以构建源代码)。5.在SystemPreferences中打开WebSharing。本文

3、的目的不是仅仅介绍如何安装,所以如果您的平台是Microsoft®Windows®或Linux®,请参阅一些很棒的PHP参考书籍(见我在参考资料中推荐的书籍)。为了检查PHP是否已安装以及版本是否合适,在/Library/WebServer/Documents文件夹中创建一个名为phpinfo1.php的文件。清单1展示了这个脚本文件的内容。本文中的所有脚本都在下载小节提供的压缩(ZIP)文件中,所以实际上不需要创建任何文件。清单1.phpinfo1.php将该脚本文件放在/Library/WebS

4、erver/Documents文件夹中之后,访问http://localhost/phpinfo1.php。应该可以看到类似图1的界面。这里可能需要用您主机的IP地址替换URL中的“localhost”。图1.PHPV5.3.0安装成功延迟静态绑定PHPV5.3扩展了static关键词的使用。现在,无需实例化类便可访问静态类方法和属性。当类不存在对象,或者不需要对象时,这个特性就比较方便。清单2展示了延迟静态绑定的一个例子。清单2.延迟静态绑定

5、llingwhomethodfromclass'.__CLASS__;}publicstaticfunctiontest(){static::who();}}classBextendsA{publicstaticfunctionwho(){echo'Callingwhomethodfromclass'.__CLASS__;}}B::test();?>清单2中的代码产生以下输出:CallingwhomethodfromclassB在PHPV5.3.0之前,类A中的方法可能被定义为self::who()。不幸的是,这将导致调用类A中的函

6、数,而不是子类B中的函数。PHPV5.3.0用static::关键词修复了这个问题,允许在运行时才引用之前调用的类方法。显然这就是清单2中代码的目的。增强面向对象任何能增强PHP面向对象方面的改变都是受鼓励的,因为这将导致更可靠的设计和更易于维护的代码。对于清单2中的代码我有些许微词,基类(A)和派生类(B)中的who()方法是重复的。如果类B中不必复制该代码就好了,但是似乎PHPV5.3.0中的__CLASS__语法要求必须这么做。也就是说,__CLASS__不支持延迟绑定。清单2中使用__CLASS__也许有点勉强,但确实可以说

7、明PHPV5.3.0有一个小小的问题。显然,对于清单2中的例子,这不是多大的问题,但是对于有数千行PHP代码的网站来说,就没那么简单了。重复代码通常意味着重复劳动。名称空间PHPV5.3提供名称空间功能,以增强该语言的封装能力。名称空间在现代语言中非常常见,例如C#和XML。名称空间的主要优点是,通过它可以为代码符号(类、函数和常量)定义独立的容器,这听起来有点复杂,其实不然。清单3显示了使用PHP名称空间定义本地和全局字符串常量的一个例子。清单3.PHP名称空间

8、,'HelloWorld!');define('testASTRING','HelloWorldfrommynamespace!');echo"

Mystringis:";echoASTRING;echo"

";echo"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。