PHP程序员站--PHP编程开发平台
 当前位置:主页 >> 新闻咨询 >> 业内新闻 >> 

PHP V5.3.0 新特性详解

PHP V5.3.0 新特性详解

来源:phperz.com  作者:phperz.com  发布时间:2010-01-08
考察的特性 本文主要考察 PHP V5.3 的以下特性: 延迟静态绑定

考察的特性

本文主要考察 PHP V5.3 的以下特性:

  • 延迟静态绑定
  • 名称空间
  • 类方法重载
  • 变量解析和 heredoc

但是,在继续之前,需要设置 PHP V5.3。

设置

PHP 广为人知的一个特点就是设置起来有点麻烦。这也许是因为 PHP 是安装在 Web 服务器(例如 Apache)上的,而且常常需要连接到外部数据库(例如 MySQL)。而且,某种意义上,PHP 脚本是嵌入在 HTML 代码中的。换句话说,PHP 这种技术横跨多个复杂的领域。所以,在编写 PHP 脚本代码之前,必须越过很多的障碍。我希望可以改善这一现状,但是与软件技术有关的很多事情仍然很困难。

不过,对于那些使用 Apple Macs 的幸运读者来说,设置过程再简单不过了:

  1. 获得 PHP 二进制安装文件(http://www.entropy.ch/software/macosx/php/)。
  2. 在 System Preferences 中关闭 Web Sharing。
  3. 找到 /etc/apache2/httpd.conf 文件。
  4. 在 httpd.conf 文件中注释掉下面这行:LoadModule php5_module。
  5. 运行 PHP V5.3 安装文件(如果您愿意,也可以构建源代码)。
  6. 在 System Preferences 中打开 Web Sharing。

本文的目的不是仅仅介绍如何安装,所以如果您的平台是 Microsoft® Windows® 或 Linux®,请参阅一些很棒的 PHP 参考书籍(见我在 参考资料 中推荐的书籍)。

为了检查 PHP 是否已安装以及版本是否合适,在 /Library/WebServer/Documents 文件夹中创建一个名为 phpinfo1.php 的文件。清单 1 展示了这个脚本文件的内容。本文中的所有脚本都在 下载 小节提供的压缩(ZIP)文件中,所以实际上不需要创建任何文件。

清单 1. phpinfo1.php

 


<?php
phpinfo();
?>

 

将该脚本文件放在 /Library/WebServer/Documents 文件夹中之后,访问 http://localhost/phpinfo1.php。应该可以看到类似图 1 的界面。这里可能需要用您主机的 IP 地址替换 URL 中的 “localhost”。

图 1. PHP V5.3.0 安装成功

  

延迟静态绑定

PHP V5.3 扩展了 static 关键词的使用。现在,无需实例化类便可访问静态类方法和属性。当类不存在对象,或者不需要对象时,这个特性就比较方便。清单 2 展示了延迟静态绑定的一个例子。

清单 2. 延迟静态绑定

 


<?php
class A {
public static function who() {
echo 'Calling who method from class '.__CLASS__;
}
public static function test() {
static::who();
}
}

class B extends A {
public static function who() {
echo 'Calling who method from class '.__CLASS__;
}
}

B::test();
?>

 

清单 2 中的代码产生以下输出:

 

Calling who method from class B

 

在 PHP V5.3.0 之前,类 A 中的方法可能被定义为 self::who()。不幸的是,这将导致调用类 A 中的函数,而不是子类 B 中的函数。PHP V5.3.0 用 static:: 关键词修复了这个问题,允许在运行时才引用之前调用的类方法。显然这就是清单 2 中代码的目的。


延伸阅读:
PHP 5.3的date_create_from_format()函数
PHP 5.3 alpha3版本发布
PHP 5.3.0 RC1 正式发布

Tags: php   php5.3   3.0   特性  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号