繁体   English   中英

PHP 5.3 与 PHP 7.x 之间的差异

[英]Difference between PHP 5.3 to PHP 7.x

我的项目在PHP 5.3上运行。 现在我想将 PHP 升级到更高版本7.x

在更新之前,我试图搜索差异和复杂性,但没有得到满意的答案。

搜索到的链接:

  1. 上升气流文章
  2. PHP手册

我还想知道是否需要更改当前在PHP 5.3上正确运行的代码?

任何建议将不胜感激。

  1. 名称的 PHP 7(不是 6)

当前的稳定版本使用版本号 PHP 5.6。 经过一番争论之后,开发团队决定在下一个主要版本中省略 PHP 6 名称。 PHP 6 过去已经作为一个实验项目存在,但从未进入生产阶段。

  1. 品牌打屁股新 Zend 引擎

Zend 引擎自 1999 年与当时的新 PHP 4 版本一起推出以来一直为 PHP 提供支持。 Zend——不要与 Zend 框架混淆——是一个用 C 语言编写的开源执行引擎,用于解释 PHP 语言。 当前的 PHP 5.X 系列使用 Zend Engine II,它增强了初始引擎的功能,并为语言添加了可扩展的对象模型和显着的性能增强。

PHP 7 收到了一个全新版本的引擎,代号为 PHP#NG(下一代)。 3.两倍的速度

新 PHPNG 引擎最容易识别的优势是显着的性能改进。 PHPNG 开发团队重构了 Zend 引擎,显着优化了内存使用。

结果? 您可以在下面看到 Zend Performance Team 提供的性能基准。 通过使用 PHP 7,您不仅可以更快地执行代码,而且还需要更少的服务器来为相同数量的用户提供服务。

  1. 促进错误处理

至少可以说,处理致命和可捕获的致命错误对于 PHP 编码人员来说从来都不是一件容易的事。 新的引擎异常将允许您用异常替换这些类型的错误。 如果没有捕获到异常,PHP 将继续返回与当前 5.X 系列相同的致命错误。

新的 \\EngineException 对象不扩展 \\Exception 基类。 这确保了向后兼容性并在错误处理中导致两种不同类型的异常:传统异常和引擎异常。

为了让程序员能够同时捕获这两者,PHP 7 引入了一个名为 \\BaseException 的新共享父类。

  1. 64 位 Windows 系统支持

PHP 是 LAMP 堆栈的重要成员,这意味着它的原生环境是 Linux——但也可以在 Windows 系统上运行它。 5.X 系列尚不提供 64 位整数或大文件支持,因此直到现在 x64 构建都被认为是实验性的。

PHP 7 将改变这一点,因为它引入了一致的 64 位支持,这意味着本机 64 位整数和大文件都将得到支持,让您将来可以放心地在 64 位 Windows 系统上运行该语言。

  1. 新的宇宙飞船和空合并算子

Spaceship 运算符以组合比较运算符的正式名称运行。 new 运算符的符号如下所示:<=>(有点像简化的宇宙飞船,如果你想得对的话)。

如果两个操作数相等,则 spacehip 运算符返回 0,如果左侧更大则返回 1,如果右侧更大则返回 -1。 它也被称为三向比较运算符,它已经存在于其他流行的编程语言中,如 Perl 和 Ruby。

您是否曾经想通过声明函数的返回类型来防止意外返回值? 好吧,新的 PHP 7 使开发人员能够在返回类型声明的帮助下提高他们的代码质量。

下图描述了一个非常简单的用例,其中 foo() 函数应该返回一个数组。 在此处查看更复杂的示例

了解更多详情 - 阅读更多

您可以在 php.net 上找到各个主要 PHP 版本的更改日志,包括迁移指南(例如http://php.net/manual/en/migration54.php )。

关于向后兼容性,请查看以下链接: http : //php.net/manual/en/migration70.incompatible.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM