PHP 5.3.0 发布

PHP 官方网站 6月30日放出了PHP 5.3.0 正式发布的消息,该版本是PHP 5.x系列的一个重要里程碑。根据 PHP 官方网站7月3日更新的 PHP 5.3.0 新特性 介绍,PHP 5.3.0 主要包括以下新增特性或功能:

  • 支持命名空间
  • 支持延迟静态绑定技术
  • 支持跳转标签(受限制的goto)
  • 支持闭包(Lambda表达式和匿名函数)
  • 新增两个魔法函数,__callStatic__invoke
  • 新增 Nowdoc 语法支持,与 Heredoc 语法相同但是带有单引号
  • 可以在静态变量和类成员、类构造函数中使用 Heredoc 语法
  • Heredoc 可以用双引号定义,以便与 Nowdoc 的单引号区别
  • 构造函数可以在类之外用 const 关键词进行定义
  • 增加了条件操作符的简短形式 ?: (例如 a = condition ? true : false)
  • 200 到 399 的状态码在HTTP数据流容器被认为是成功
  • 允许动态访问静态成员
  • 允许对异常进行嵌套
  • 增加并且默认启用垃圾回收机制

此外,针对Windows版本的改变有:

  • 不再支持Windows98,ME和NT4,最低支持Windows 2000
  • Windows 二进制版本针对 i586 或更高版本编译,不再支持 i386和i486
  • 对 Windows 系统上的 64位 PHP 提供支持(实验性的)
  • 支持Visual C++ 9(VC9)编译,可以使用 Visual Studio 2008。
  • PDO_OCI 的 php_pdo_oci8.dll 库(用于Oracle 8的客户端类库)不再构建,替代它的是 php_pdo_oci.dll(去掉了“8”),用于 Oracle 10 或者 11。与其他版本的数据库连接继续支持。
  • 针对 OCI8 的扩展,除了php_oci8.dll之外增加了一个php_oci8_11g.dll,但是不能同时启用。php_oci8.dll与Oracle 10.2客户端类库结合使用,而php_oci8_11g.dll 和 Oracle 11客户端类库结合使用。与其他版本数据库的连接继续支持。

Windows版本新增加了对下列函数的支持:

除了上述改变外,Windows版本还有一些其它提升性能或者增加兼容性的改进,而最为重要的则是一条针对Windows的说明:

在windows下采用ISAPI方式运行PHP已经被遗弃,采用改进的FastCGI SAPI模块来代替。我在2008年6月23日的日志中曾经笑称“PHP成为IIS‘一等公民’”,那是只是从微软IIS团队官方发布PHP的FastCGI模块,以及微软和Zend的合作而对PHP在Windows平台上的使用做了最乐观的展望,而后来微软在IIS7以后的版本内置FastCGI模块,甚至在云服务中也内置FastCGI支持,则更说明了PHP与Windows的联姻将继续增强。可惜的是直到Windows7发布之后,网上的绝大部分教程依然在教新手采用ISAPI方式运行PHP,甚至是采用PHP4的安装方式。甚至还有人专门跑到我的空间里叫嚣在Windows下运行PHP是如何如何。开源社区对Windows平台的妖魔化,至今影响深远。正是由于拒绝导致了他们对Windows、ASP.NET、C#的不了解,甚至直至今日还死抱着Windows比Linux慢、不如Linux安全之类的陈旧观念。

如今PHP 5.3.0也像ASP.NET一样,引入了命名空间、延迟绑定、匿名函数、Lambda表达式等先进特性,可见编程语言与平台无关性在未来将更加凸显,而混合编程的正确性和先进性也将不断得到体现。封闭自己,拒绝变化的产品和思想,在开发领域只有死路一条。