【问题标题】:Is PHP 5.3 backwards-compatible with PHP 5.2?PHP 5.3 是否向后兼容 PHP 5.2?
【发布时间】:2011-01-14 16:49:34
【问题描述】:

我开始学习 PHP。我想使用 PHP 5.3,因为它是迄今为止的最新版本。我正在做一个项目,在这个项目中我将使用别人给我的 PHP 5.2 脚本。

即使我使用的是 PHP 5.3,它们还能正常运行吗?

【问题讨论】:

标签: php backwards-compatibility


【解决方案1】:

PHP.net 提供guide 用于从 PHP 5.2.x 升级到 PHP 5.3。这包括关于backwards compatibility 的部分。

根据我的经验,从 5.2 到 5.3 的过渡非常顺利。我的应用程序遇到的唯一问题是确保我的 DateTime 设置是在我的 php.ini 中配置的属性,并过滤掉一些开始出现的过于激进的弃用警告。

【讨论】:

【解决方案2】:

不,5.3 不向后兼容,无论如何不应将其视为次要版本升级。 有一个专门用于不兼容更改的页面:http://www.php.net/manual/en/migration53.incompatible.php 还要考虑您设计但已被 5.3 接受的功能。由于 php 不支持函数的重载或覆盖,这会报错。

【讨论】:

  • “考虑您设计但已被 5.3 接受的函数”哇,这是一件罕见/随机的事情要指出 :D 但为什么是 -1?
  • 至于我指出的原因:我不止一次遇到过它,试图用 5.3 运行旧应用程序。我们已经定义了函数,现在 php-lib 函数(我认为 'date_add' 是其中之一),它真的坏了。全局查找和替换肯定比您对次要版本更新的预期付出更多的努力。至于为什么是-1,我也很好奇。
  • 那么如果要引入向后不兼容的更改,他们为什么还要增加次要版本呢?这听起来很尴尬。
【解决方案3】:

在大多数情况下,次要版本不会给您带来问题。你应该没事的。

显然,如果您确实有任何问题,您需要确保已将error_reporting 设置为查看所有错误。 PHP: error_reporting

此外,请查看手册以了解 5.3 与 5.2 的更改:Migrating from PHP 5.2.x to PHP 5.3.x

【讨论】:

    【解决方案4】:

    有一些小问题。不推荐使用按引用传递的调用时间。有新的保留字(即 goto)。

    【讨论】:

      【解决方案5】:

      php 在所有版本中都没有向后兼容性。它经常在更改版本时删除一些功能。当您必须升级服务器并需要更改 php 版本但某些 php 脚本不再适用于新的 php 版本时,就会出现此问题。您还必须更正 php 脚本,这是一项更大的工作。但是,如果脚本属于其他用户而不是您的,则无法升级这些脚本。这是一个真正令人头疼的情况,我受够了 php 并出于向后兼容性的原因改用 perl。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-29
        • 1970-01-01
        • 1970-01-01
        • 2021-05-01
        • 1970-01-01
        • 2019-06-19
        • 2013-12-31
        • 1970-01-01
        相关资源
        最近更新 更多