一、前言

  php7目前(截止2018-09-17),最新的稳定版本是7.2.10(http://php.net/downloads.php上可查看版本信息),目前还有不少项目是用5.6甚至更早的版本。相比于php5.x的版本,php7有不少新的改进,性能方面也是有不少提升。下面来详细讲下。

二、新特性

1、php7.0相比于php5.6的新特性

参考:http://php.net/manual/zh/migration70.new-features.php 下面所讲的内容都是来自于这篇文章,只是详细地解释。

1.1  标量类型声明

函数/方法中的参数,是可以加一个类型声明的,这个是php5.0就开始支持的,比如:

function testClass(类名 $c)

{

}

function testArray(array $a)

{

}

php5.x支持的这个类型不多,php7增加了几个:

参考:http://php.net/manual/zh/functions.arguments.php#functions.arguments.type-declaration

这里的意思是,方法的参数的类型,只支持上面列出的这些类型,如果是其他类型,php5报错致命错误,php7会报错TypeError的异常。

举个例子:

function test (boolean $b)

{

}

test(true);

执行结果:

 Fatal error: Uncaught TypeError: Argument 1 passed to test() must be an instance of boolean, boolean given, called in - on line 1 and defined in -:1

这里报错的原因是参数类型boolean不是一个合法的类型,上面截图中可以看到是bool才对,不能用boolean。这里有点不好理解,就是我们大多会认为boolean就是bool,所以这里应该是规定好的,就是只能用bool,不能用boolean。

同理,用integer也是错的,要用int。 float是包含了float和double的,如果用double也是会报错的。再解释下,用boolean的时候,因为不是bool,也不是int、float、self、array等,所以这个boolean会被认为是class或者interface,

报错信息里面展示的是参数必须是boolean(类或接口)的一个实例,但是调用时传入的参数是boolean类型(true的类型)。有点绕,但是应该不难理解。

1.2 返回值类型声明

返回值的类型,跟参数的类型一致。

【注意】在默认情况下,函数返回值如果和定义的不一致,会进行强制转换,在严格模式下,则会报错TypeError。

这个例子这里是强制转换了类型。

函数返回值的说明参考:http://php.net/manual/zh/functions.returning-values.php#functions.returning-values.type-declaration

1.3 null合并运算符

1.4 太空船操作符(暂时不清楚这个操作符有什么实际用处,后续了解清楚再补充上)

 1.5 define允许定义常量数组

我们来看下define的声明,参考:http://php.net/manual/zh/function.define.php

这个新特性大概是为了丰富define的功能,const已经实现了这个功能了的。

1.6 匿名类

详细的匿名类参考:http://php.net/manual/zh/language.oop5.anonymous.php

【备注】考虑到篇幅问题,先跳过中间几个个人觉得不太常用的特性

 1.7 use分组命名空间

这里可以用一行代码引入同一个命名空间下的多个类,而不是之前那样需要每个类一行代码,算是一种优化。

1.8 新增整数整除的函数intdiv()

返回值为整型。

参考:http://php.net/manual/zh/function.intdiv.php

1.9 新增的随机函数

参考:

http://php.net/manual/zh/function.random-bytes.php

http://php.net/manual/zh/function.random-int.php

2、php7.1相对于php7.0的新特性

参考:http://php.net/manual/zh/migration71.new-features.php

涉及的内容不多,直接看上面的url即可。

3、php7.2相对于php7.1的新特性

参考:http://php.net/manual/zh/migration72.new-features.php

涉及的内容不多,直接看上面的url即可。

PHP7新特性-简述相关推荐

  1. php7 ast,PHP7新特性之抽象语法树(AST)带来的变化详解

    本文分析了PHP7新特性之抽象语法树(AST)带来的变化.分享给大家供大家参考,具体如下: 这里大部分内容参照 AST 的 RFC 文档而成:https://wiki.php.net/rfc/abst ...

  2. php7的新特性有哪些,php7新特性有哪些?

    php7新特性有:将PHPNG代码合并到PHP7中:降低内存消耗:标量类型声明,可以强制执行参数和返回类型:一致的64位支持:改进了异常层次:已弃用的SAPI和扩展被删除:添加了新的空合并运算符(?) ...

  3. PHP7新特性(常用)

    PHP7新特性(常用) 致命错误将可用异常形式抛出 ?? null合并运算符 标量类型声明 返回值类型声明 太空船操作符<=>(组合比较符) 致命错误将可用异常形式抛出 在php7之后,大 ...

  4. php7.4新特性 多线程,PHP7新特性WhatwillbeinPHP7/PHPNG

    PHP7将在2015年10月正式发布,我们来看看官网给出的php7 特性 官网: http://www.php7.ca/ https://wiki.php.com/phpng PHP7新特性( Wha ...

  5. 【PHP】PHP7新特性

    PHP7新特性 PHP7.0 PHP7.0新特性 PHP7.0 变化 PHP7.1 PHP7.1新特性 PHP7.1变化 PHP7.2 PHP7.2新特性 PHP7.2变更 PHP7.3 PHP7.3 ...

  6. PHP7新特性和废弃的函数

    一篇写给准备升级PHP7的小伙伴的文章 https://blog.csdn.net/u011957758/article/details/73320083 PHP7新特性 https://lvtao. ...

  7. PHPStorm使用PHP7新特性出现红色波浪错误

    今天在项目中使用PHP7新特性时PHPStorm出现了如下红色错误,看着让人很不舒服,明明没有错 本地配置LNMP的PHP版本是7.2所以不是安装的PHP版本过低的问题,而是PHPStorm默认支持的 ...

  8. php标量类型包括,php7新特性之标量类型声明

    标量类型声明 什么是标量类型?首先要清楚这一点,标量类型(Scalar type)是相对复合类型(Compound type)来说的:标量类型只能有一个值,而复合类型可以包含多个值.复合类型是由标量类 ...

  9. PHP7新特性 What will be in PHP 7/PHPNG

    来源:http://blog.csdn.net/hguisu/article/details/45094079/ 本文结合php官网和鸟哥相关文章总结: 官网:http://www.php7.ca/  ...

最新文章

  1. Zabbix使用JMX监控tomcat
  2. KubeMeet 深圳站完整议题出炉
  3. 10·24【运维工程师也过节】【运维MySQL大礼包】
  4. read-only file system怎么改权限_“我就退出家长群!怎么了?”压垮成年人仅需一个“家长群”上热搜?...
  5. 试试把OJ题意抽象成物理模型(洛谷P1007题题解,Java语言描述)
  6. Java进击C#——语法之多线程
  7. 拓端tecdat|R语言随机波动率(SV)模型、MCMC的Metropolis-Hastings算法金融应用:预测标准普尔SP500指数
  8. python实现同一目录文件下所有Excel数据文件的合并
  9. java 权重_java的权重匹配算法技术?
  10. cisco2811(Cisco2811 DHCP)
  11. android手机 ipad 同屏,iphone和ipad
  12. **海量搜索解决方案_Spring Data Solr [篇3/共3篇]*
  13. c语言仿宋gb2312字体,仿宋gb2312字体官方下载|仿宋gb2312字体下载官方版 - 维维软件园...
  14. 南师大GIS考研数据库2015年第三题
  15. 合理使用计算机教学反思,生物学课堂中采用计算机多媒体的教学反思
  16. 微信公众号自动回复海报
  17. python编写年金现值计算函数_Python基础(三) 汇率计算demo
  18. 02-gitgitlab二次认证
  19. 【信息系统项目管理师】解读高项考试大纲
  20. Facebook的利润创下历史新高,不受最近的丑闻影响

热门文章

  1. 入门板绘又应该注意什么呢? 板绘初学者怎么练线稿
  2. Python调用Jar包的两种方式
  3. 复杂字云简单做,随时做好装逼的准备
  4. document.documentElement与document.body
  5. MPAndroidChart的详细使用——BarChart条形图组(三)
  6. idea2021 乱码问题
  7. 蓝牙热敏打印开发(佳博打印机)
  8. Windows10企业版中安装Docker
  9. R语言把DataFrame的一行变成向量
  10. pc 微信小程序 位置