PHP 7:您需要了解的10件事
但是首先,我们需要提醒一些注意事项。
7.0.0主要版本包含了许多很酷的功能,因此我们决定在此发布整个文章。
然后,我对您来说是个好消息:新PHP 7的功能完善的beta版最近发布了 。
您的网站是否在支持PHP的CMS(例如WordPress,Drupal,Joomla或Magento)上运行?
您是网站开发人员还是网站所有者?
为了确定下一个Beta何时发布,这是项目时间表 。
如果作为未来的用户希望在开发过程中获得应有的份额,那么您可以帮助下载最新的beta ,在测试环境中试用它,并报告在测试过程中发现的错误 。
请注意,PHP 7仍处于开发阶段,因此请不要在 11月发布最终版本之前在生产中使用它 。
顺便说一句,让我们看看PHP 7。
1.名称的PHP 7(非6)
PHP 6过去已经作为实验项目存在,但从未进入生产阶段。
在发生争执之后 ,开发团队决定他们将省略下一个主要版本的PHP 6名称。
当前的稳定版本使用版本号PHP 5.6 。
为了防止用户将以前的尝试与最新的开发混淆在一起,新的主要版本将以PHP 7的名称运行。
2.打品牌的新Zend引擎
当前的PHP 5.X系列使用Zend Engine II ,它增强了初始引擎的功能,并添加了可扩展的对象模型和对该语言的显着性能增强 。
Zend(不要与Zend框架混淆)是一个用C编写的开源执行引擎,用于解释PHP语言。
Zend引擎自1999年在当时新的PHP 4版本中引入以来就一直为PHP提供支持。
PHP 7收到了一个全新版本的引擎,其代号为PHP#NG(下一代) 。
3.两倍的速度
PHPNG的开发团队重构了Zend Engine,并显着优化了内存使用。
新的PHPNG引擎最容易识别的优势是性能的显着提高。
通过使用PHP 7,不仅可以更快地执行代码,而且还需要更少的服务器来为相同数量的用户提供服务 。
您可以在下面查看Zend Performance Team提供的性能基准。
结果?
4.促进错误处理
如果未捕获到异常,PHP将继续返回与当前5.X系列相同的致命错误。
新的引擎异常将使您可以用异常替换此类错误。
至少可以说,对于PHP程序员而言,处理致命错误和可捕获的致命错误从来都不是一件容易的事。
这样可以确保向后兼容,并在错误处理中导致两种不同的异常: 传统 异常和引擎异常 。
新的\ EngineException对象不会扩展\ Exception基类。
为了使程序员能够同时捕捉到两者,PHP 7引入了一个新的共享父类 ,名为\ BaseException 。
5. 64位Windows系统支持
5.X系列尚未提供64位整数或大文件支持,因此直到现在,x64构建仍被视为试验性的 。
PHP是LAMP堆栈的杰出成员,这意味着其本机环境是Linux-但也可以在Windows系统上运行它 。
PHP 7将引入一致的64位支持 ,这将改变这种情况,这意味着将支持本机64位整数和大文件,从而使您将来可以放心地在64位Windows系统上运行该语言。
6.新的太空飞船和空联合运营商
新运算符的符号如下所示: <=>
(如果您认为正确的话,类似于简化的太空船)。
宇宙飞船的运营商以联合比较运营商的正式名称运行。
它也称为三向比较运算符 ,它已经存在于其他流行的编程语言中,例如Perl和Ruby。
如果两个操作数相等,则空间运算符返回0;如果左边较大,则返回1;如果右边较大,则返回-1。
如果第一个操作数存在且不为null,则合并运算符将返回其结果;在其他情况下,则返回第二个操作数的结果。
如果要检查是否存在某些东西并返回默认值(如果不存在),可以使用它。
Null合并运算符用两个问号(??)表示。
这是新操作符如何减少基本声明所花费的时间:
7.启用准确的类型声明
好吧,新的PHP 7使开发人员可以在返回类型声明的帮助下提高代码质量。
您是否曾经想过通过声明函数的返回类型来防止意外的返回值?
在这里查看更复杂的示例。
下图描述了一个非常简单的用例,其中foo()函数应该返回一个数组。
PHP 7引入的新标量类型也将由参数类型提示支持,该类型提示使开发人员可以强制使用自PHP 5.X系列以来的参数类型。
新的标量类型使开发人员可以表示他们期望返回整数,浮点数,字符串或布尔值。
为了进一步增强该功能,PHP 7引入了4个用于标量类型的新类型声明: int,float,string和bool 。
8.添加匿名类
它实例化的对象具有与命名类的对象相同的功能。
匿名类是没有名称的类。
PHP 7使您可以使用匿名类 ,在其他面向对象的语言(如C#和Java)中,这已经是一种公认的惯例。
当一个类在执行期间仅使用一次并且不需要记录一个类时,匿名类非常有用。
如果匿名类使用得当,它们可以加快编码速度,并缩短执行时间 。
语法与我们在传统PHP类中使用的语法相同,只是名称丢失。
9.促进从相同命名空间的导入
新的语法减少了冗长的内容,使您的代码更加整洁和直观,并节省了大量键入时间。
新的“ 组使用声明”功能对于那些想从同一个命名空间中导入许多类的人来说是一个福音。
由于组使用声明可以帮助您识别属于同一模块的导入,因此通读和调试代码也将更加容易。
10.打扫房间
PHP 7的目标是释放空间以进行改进,因此有必要摆脱许多不赞成使用的功能以及旧的和不受支持的Server API和扩展。
但是请注意,如果您有在旧版本的PHP 上运行的旧版应用程序,则新的PHP 7可能会破坏代码 。
PHP 5中不推荐使用所有删除的项目,因此很可能您已经很长时间没有使用它们了。