免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1746 | 回复: 2

[新闻] PHP 5.3RC4 发布 正式版有望于下周推出 [复制链接]

论坛徽章:
0
发表于 2009-06-27 11:24 |显示全部楼层
6 月19 日,PHP 官网消息称:PHP 5.3RC4 正式发布,并有望于下周推出一个稳定的正式版本。

以下是原创消息:

比起之前的 5.3 测试版,新的版本解决了众多因为匿名函数以及命名空间的 bug。包括 spl_autoload_register 和匿名函数的配合问题:在之前的版本中,spl_autoload_register(function($class){}) 先是会造成 segmentation fault,后来经过解决,不会造成 seg. fault 但是却会造成所有 spl_autoload_register 都共用同一个匿名函数。这个问题已经在 RC4 版中得到完美解决。

PHP 5.3 是一个里程碑式的版本。不管你是否喜欢 PHP 的变化,她都从 5.0 开始的和 Java 相像,变得和谁都不像了起来。和之前的版本相比 PHP 5.3 被看做是 PHP6 的过渡版本,新添加了很多功能。下面是个人对这些功能的一些评论:

1. namespace

命名空间可谓是千呼万唤始出来。但是,命名空间的格式却十分奇怪,分隔符用的是反斜线 \,和大多数的语言都不同,倒是有点像 Windows 的路径地址。关于这个符号,已经在网络上看到了很多批评和不满的声音(有兴趣请 Google 一下)。可 PHP 实在是没有选择的,看看 PHP RFC 中分隔符的选择,实际上除了 \ 之外,还真没有选择:

- 双冒号 :: 已经用作静态方法调用了。
- 句号 . 已经用作字符串连接。

PHP 命名空间只能用于归类函数和类,在外部并不能直接访问在空间内部定义的变量。而在空间内部定义的变量,可以在另外的文件中定义的空间中访问到:


  1. // in file1.php
  2. namespace a;
  3. $foo = '123';

  4. // in file2.php
  5. namespace a;
  6. echo $foo; // 123
复制代码


这个设定让 PHP 可以实现一些功能,例如 package visibility,但是就会涉及到使用 global,而且也会破坏封装。

2. goto

一个用得不好会死人的东西。

3. anonymous function

这一次 PHP 终于有了匿名函数。比起 create_function,它的好处是:支持语法高亮,支持 use lexcial variable,可以直接在需要 callback 的地方使用而不用另外定义。但是说实话,比起 Ruby 的语法,PHP 的语法是不太好看和好写的。

4. NOWDOC

不带变量替换的 HEREDOC,可以用于初始化类变量。不错的小功能。

5. Late Static Binding

这是一个非常特殊的功能,详细介绍请见 php.net。它的最大作用,可能就是让 PHP 可以实现真正意义上的 Active Record 吧。

6. __callStatic

这个功能和上面类似,最大的作用莫过于让 PHP 可以实现和 Rails 类似的 dynamic finder。

论坛徽章:
0
发表于 2009-06-27 11:28 |显示全部楼层
不得不说,PHP 的前景令人担忧,从一个简单的语言,到四处杂凑功能,让 PHP 的语法越来越奇怪。而从一开始的对于这个语言的目标设定就不是一个完美的语言,而因为 rails 和各种新登场的设计模式的推广,这种设定上的矛盾变得越来越突出,PHP 不得不在语法的优美和功能的实现上寻找平衡。无论如何,希望 PHP 能走得更远。

论坛徽章:
0
发表于 2009-06-27 12:03 |显示全部楼层
支持支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP