php70 和php71,php7新特性

【摘要】

考必过小编为大家整理了关于“ php7新特性”的信息,希望可以帮助到大家,下面我们就一起来看下“ php7新特性”的具体内容吧!

一、前言

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

a1610922d10239259ec941fb1b5137c2.png

这里的意思是,方法的参数的类型,只支持上面列出的这些类型,如果是其他类型,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 返回值类型声明

47a8d14d43e41f996dee3025359dc95e.png

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

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

2ce2963465a2201ec700e180552ec452.png

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

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

1.3 null合并运算符

ad4624f6ee2caf965265aaade03dfe97.png

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

539bc1cecfdaeca2307c3b648624b322.png

1.5 define允许定义常量数组

e5e84e55d5b1611a754063efd37a1763.png

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

936c682cff405388e3bb947e6537a167.png

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

1.6 匿名类

8deb7300df4ffe859aef83e18de859a0.png

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

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

1.7 use分组命名空间

f14ead3194b723359b51926049fda8a4.png

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

9e0cf46b67bf4bbcf3d83a8a876e1df4.png

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

5ab6d63261a049dfa7a96a0b844bead5.png

返回值为整型。

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

1.9 新增的随机函数

affe04f1f16b722b04a73ce60316058c.png

参考:

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新特性”的相关信息,想了解更多考试最新资讯可以关注考必过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值