【发布时间】:2011-03-02 00:25:16
【问题描述】:
我的服务器上有 php 5.2.11。我应该升级到新的 PHP 5.3.2 吗?
有什么新功能可以挽救我的生命吗?
有什么建议吗?
【问题讨论】:
-
除非有人威胁说如果你不升级就会结束你的生命,我很遗憾地说它可能不会挽救你的生命:P。
我的服务器上有 php 5.2.11。我应该升级到新的 PHP 5.3.2 吗?
有什么新功能可以挽救我的生命吗?
有什么建议吗?
【问题讨论】:
如果您正在运行不是自己编写的应用程序,我会谨慎升级,因为您可能会发现很多警告被抛出,5.3 更麻烦。
【讨论】:
升级到 PHP 5.3 绝对是个好主意,但前提是您的代码与 PHP 5.3 兼容。
您可以使用 PHP 5.3 Compatibility codesniffer rules 自动执行部分测试 - 通过此测试的代码不一定能 100% 工作,但至少您不必再担心很多问题。
【讨论】:
Late static binding 是我在 5.3 中实际使用的第一件事。 Lambda 和命名空间非常棒,但您可以在之前的版本中解决它们的缺失。
简而言之,LSB 让您可以访问在调用静态函数时实际调用的类。
<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
static::who(); // Here comes Late Static Bindings
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test(); // "B"
AFAIK,在 PHP 中没有办法做到这一点
【讨论】:
最值得注意的是5.3更快。多少取决于你的系统和代码,很多人说这很值得注意。
http://php.net/migration53 上的迁移指南记录了更改和新功能。我个人非常喜欢闭包/匿名函数。
【讨论】:
我发现lambda functions 非常有用,尤其是与array_search、array_map、array_reduce 等一起使用。
【讨论】:
看看'changelog',如果你真的需要,请给出你的决定。
【讨论】: