【问题标题】:Should I upgrade my server's PHP to version 5.3?我应该将服务器的 PHP 升级到 5.3 版吗?
【发布时间】:2011-03-02 00:25:16
【问题描述】:

我的服务器上有 php 5.2.11。我应该升级到新的 PHP 5.3.2 吗?

有什么新功能可以挽救我的生命吗?

有什么建议吗?

【问题讨论】:

  • 除非有人威胁说如果你不升级就会结束你的生命,我很遗憾地说它可能不会挽救你的生命:P。

标签: php php-5.3


【解决方案1】:

如果您正在运行不是自己编写的应用程序,我会谨慎升级,因为您可能会发现很多警告被抛出,5.3 更麻烦。

【讨论】:

    【解决方案2】:

    升级到 PHP 5.3 绝对是个好主意,但前提是您的代码与 PHP 5.3 兼容。

    您可以使用 PHP 5.3 Compatibility codesniffer rules 自动执行部分测试 - 通过此测试的代码不一定能 100% 工作,但至少您不必再担心很多问题。

    【讨论】:

      【解决方案3】:

      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 中没有办法做到这一点

      【讨论】:

        【解决方案4】:

        最值得注意的是5.3更快。多少取决于你的系统和代码,很多人说这很值得注意。

        http://php.net/migration53 上的迁移指南记录了更改和新功能。我个人非常喜欢闭包/匿名函数。

        【讨论】:

        • 不是我怀疑它,但是你有任何性能比较的来源吗?我很想看到改进。
        • @nickf 主要来自在会议上与不同用户交谈并重新审核提交。如果您搜索“Sebastian Bergmann benchmarks php 5.3”之类的内容,您应该会找到有关一些人工基准的博客文章。
        【解决方案5】:

        我发现lambda functions 非常有用,尤其是与array_searcharray_maparray_reduce 等一起使用。

        【讨论】:

          【解决方案6】:

          看看'changelog',如果你真的需要,请给出你的决定。

          【讨论】:

            猜你喜欢
            • 2010-11-07
            • 2010-12-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-05-20
            • 1970-01-01
            • 2013-01-05
            相关资源
            最近更新 更多