欢迎光临陕西佳毅网络科技有限公司官网




营业执照公示

PHP 进化史 — 从 v5.6 到 v8.0

日期:2019-10-03 11:49:27 作者:admin 浏览:93
PHP 7.3 版本发布后,为了更好地理解这门广泛流行的编程语言的新特性和优化之处,我决定详细地研究下 PHP 开发:正在开发什么以及其开发方向。

在查看了 PHP 在 PHP 7.x 版本开发过程中实现的一系列特性的简要列表之后,我决定自己整合这个列表作为一个很好的补充,我相信也会有人觉得有用的。

我们将从 PHP 5.6 作为基准开始,研究添加或者更改了哪些内容。同时,我也在每一个被提及到的特性处添加了直达相关官方文档的链接,所以如果你有兴趣深入阅读,请随意。

PHP 7.0

匿名类的支持

在下面两种情况下,匿名类可能会被使用在命名类中:

● 当该类没有必要被记录下来的时候

● 当该类在程序执行过程中只使用一次的时候
 

整除函数 — 安全的除法 (即使是被 0 整除)

该函数会返回第一个参数被第二个参数整除后结果的整数部分。当除数(也就是第二个参数)值为 0 时,该函数会抛出一个 E_WARNING 的错误并且返回 FALSE。

增加了新的空合并操作赋 — 也就是 “??”
 

添加新的操作符 — 飞船符 (<=>)

飞船符用于优化和简化比较操作。
 

标量类型声明 

这只是在 PHP — v0.5 中实现更强类型编程语言特性的第一步。
 

返回类型声明 

增加了返回包括继承在内的标量类之外的其他类型的特性。不知何故没有将其设置为可选特性 (将在 v7.1 中说明 :blush: )
 

从图表中可以看出, PHP 7.0 在性能和(减少)内存占用上有巨大改进。 对于带有数据库查询的页面,7.0.0 版本在启用 opcache 的情况下比 5.6 版本 快 3 倍,在未启用 opcache 的情况下比其 快 2.7 倍。在内存占用方面,两者的差异也是非常明显的。

Throwable 接口
 

重构的异常类具有非直观的命名方案,并且可以减少混淆,特别是对于初学者。

Errors 和 Exceptions 现在 实现了 Throwable.

 

这是 Throwable 层次结构:
 

*? 警告!你只能

通过继承 Error 和 Exception 来实现 Throwable,

也就是说一个继承自 Throwable 的接口只能被 Exception 或 Error 的子类来实现。

Unicode Codepoint 转义语法 — “u{xxxxx}”