【问题标题】:What is wrong with PHP5.3?PHP5.3 有什么问题?
【发布时间】:2011-06-30 10:14:28
【问题描述】:

我发现很多托管公司都不愿意升级到 PHP5.3。他们中的大多数给我的原因是PHP5.3中有很多错误,所以他们更愿意将其保留在5.2版本。

那么 v5.3 有什么问题呢?他们说的是真的吗 - 很多错误?我在本地服务器上没有遇到任何错误!

还是他们只是不愿意升级!?

【问题讨论】:

    标签: php hosting php-5.3


    【解决方案1】:
    • 当第一个 PHP 5.3.0 发布时,IIRC 字节码缓存尚未准备好并适应新的 ABI 和 Zend_core 更改。问题同时解决了,但疑虑依然存在。
    • 那么用户请求真的太少了,因为还没有很多代码依赖于 5.3 的特性。
    • 存在一些compatibility breaks(存在一些 WP 和 Drupal 问题,但大多数问题都被夸大了)。

    因此,大多数共享主机没有动力升级现有服务器。

    【讨论】:

    • 有趣。那个 realpath 东西可能会破坏一些应用程序......但是 5.3 充满了像命名空间和高级 DateTime 这样的好处,不升级真的很可惜
    • 有很多升级的诱惑。 http 扩展、闭包、日期内容、三元简写、__callStatic,甚至可能是 goto。但命名空间对某些人来说是一种反理由(也许对托管者也是如此)。
    • goto -- 严重吗? (你是,我只是查了一下!)我不知道一种语言可以积极地转移。我会说这是升级的原因:-(
    • @pst:实际用途有限;它实际上只是一个标签中断。人们只是对这个名字感到暴躁。它旨在作为像 SplFixedArray 这样的微优化。
    • 可悲的是,它不仅仅是一个“标记的中断”(这意味着它只能“返回”到与之前的“命名构造”例如 for -每个或块等)。看例子:php.net/manual/en/control-structures.goto.php...我猜至少不是COMEFROM
    【解决方案2】:

    当然不是唯一的原因,但是这个(微小的)变化在 CMS 中造成了很多问题,比如 drupal:

    注意:上没有参考符号 函数调用 - 仅在函数上 定义。函数定义 仅此一项就足以正确通过 通过引用论证。 从 PHP 5.3.0 开始,当您在 foo(&$a); 中使用 & 时,您将收到一条警告说“调用时传递引用”已被弃用。

    引自PHP: Passing by Reference

    因此,第一批迁移到 php 5.3 的托管公司可能已经被来自小(和没有经验的)网络管理员的支持请求淹没了。

    因此,我想其他公司决定等待更稳定的情况......

    【讨论】:

      【解决方案3】:

      这不是 php 5.3 的错误,但它会通过吐出通知和弃用警告来指出应用程序代码中的不良做法。

      所以当使用旧的 php 库时,您可能会看到很多错误消息,这可能会被视为错误。

      PHP 5.3.0 于 2009 年 6 月 30 日发布,php.net 不再正式支持 5.2。如果您的托管公司没有加强,那么是时候更换了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-09
        • 2014-08-12
        • 2010-12-23
        • 2010-10-24
        • 2011-10-04
        • 2011-10-08
        • 2013-04-07
        相关资源
        最近更新 更多