PHP7.0至PHP8部分特性总结

1 篇文章 0 订阅
1 篇文章 0 订阅

PHP7.0特性

2015年6月11日,PHP开发团队宣布将立即提供PHP 7.0.0 Alpha1。此版本标志着PHP 7主要系列的开始。我们有许多原因,应该对PHP7.0感到兴奋,接下来让我们来看一下它全新的语言特性!

  1. 性能:
    PHP7.0采用下一代由PHP核心团队开发的引擎,比传统的Zend引擎快两倍甚至是三倍,同一个框架应用在 PHP 7.0 下的性能比 PHP 5.6 提高了54%,这是一个很显著的性能提升

  2. 新特性

    1、)严格模式
    开启方式

    declare(strict_types = 1);
    
     作用:严格模式下,形参和返回值可加限制	
     PHP7支持的类型限制分别有:
     1、字符串(string),
     2、整数 (int),
     3、浮点数 (float),
     4、布尔值 (bool)
     5、接口(interfaces)
     6、类(类名)
     7、数组(array)
     8、回调(callable)
    

    2、)传参类型约束

    严格模式下,当一个函数被约束了传参类型,传入的数据必须与定义函数时约定的数据类型一致,否则会产生报错。若在非严格模式下,传入非约定的数据类型,则PHP会自动转换成与函数相匹配的数据类型,如下图运行结果所示在这里插入图片描述
    运行结果(非严格模式)
    在这里插入图片描述
    运行结果(严格模式)
    在这里插入图片描述

    3、)返回值类型约束

    非严格模式在这里插入图片描述
    在这里插入图片描述
    严格模式
    在这里插入图片描述
    在这里插入图片描述
    4、)匿名类

    匿名类指的是不具备名字的类,在创建时通过new关键字来实例化它们
    在这里插入图片描述
    5、)闭包类
    关于闭包,这里就不过多阐述,详细请看这篇文章
    https://www.cnblogs.com/one-villager/p/8423097.html

    PHP7.0和5.6的对比写法
    https://www.cnblogs.com/one-villager/p/8423097.html
    运行结果:

    在这里插入图片描述
    6、)发动机(Generator)

    这里的发动机更像把一个方法通过yield变作一个对象并进行遍历,代码并不难理解,这里也不多阐述
    在这里插入图片描述
    运行结果
    在这里插入图片描述
    7、)更优雅的三元表达式

    三元运算符是我最常用的语法糖,而在PHP7中,它变得更优雅,更简洁。快 看下面
    在这里插入图片描述
    运行结果
    在这里插入图片描述

    8、)太空船语法(Space ship operator)

    当左边的数和两边的数相等时,飞船返回0,小于返回-1,大于返回1在这里插入图片描述
    运行结果
    在这里插入图片描述

    9、)Throwable

    Throwable 是 PHP 7 中可以用作任何对象抛出声明的基本接口,包括 Expection (异常)和 Error (错误)。

    在这里插入图片描述
    在这里插入图片描述 10、)目录分级
    在这里插入图片描述
    运行结果
    在这里插入图片描述
    11、)intdiv(整除)
    在这里插入图片描述
    运行结果
    在这里插入图片描述

PHP7.1特性

发布时间:2016.12.1

  1. PHP历代性能对比:
    在这里插入图片描述

  2. 新特性

    1、)可空类型( Nullable Types)

    通过引入 Nullable Types,现在可以从函数返回 null。这个特性在其他语言中已经得到了很好的支持,包括 c # 和 Java。可空类型如下例所示:
    在这里插入图片描述
    运行结果
    在这里插入图片描述
    2、)Void函数( Void Function)

    约束了void类型返回值的函数,可以没有返回值
    在这里插入图片描述
    运行结果
    在这里插入图片描述
    3、)支持键入列表

    在 PHP 7.1中,数组语法([])可用于为赋值而对数组进行重构。这是 list ()语法(也可以使用)的一个很好的替代方法。可以在 foreach 语句中使用此结构进行赋值。
    在这里插入图片描述
    运行结果
    在这里插入图片描述
    4、)负向字符串偏移量
    在这里插入图片描述
    运行结果
    在这里插入图片描述
    5、)多捕获异常处理

    在这里插入图片描述
    6、)常量访问修饰符
    (唠嗑:定义常量常量名都应全部大写)
    在这里插入图片描述

    PHP7.2、7.3特性

    相同版本的wordpress在不同php版本运行的速度对比在这里插入图片描述

    1、)新增object类型

    指定返回对象必须为对象在这里插入图片描述
    因为 PHP 7.2类型提示可以与对象数据类型一起使用,这种改进允许将一个泛型对象声明为函数或方法的参数。下面是一个例子:
    在这里插入图片描述
    输出结果
    在这里插入图片描述

    2、) 全新的Heredoc和 Nowdoc 语法

    Heredoc 语法提供了一种添加大量文本的方法,而不需要转义双引号之类的内容。Heredoc 以 < < < 开头,后面跟着一个标记,以相同的标记结尾,后面跟着一个分号。下面是一个例子:

    在这里插入图片描述

    输出结果
    在这里插入图片描述
    nowdoc和heardoc差不多

    在这里插入图片描述

    在php7.2这个写法是错误的
    在这里插入图片描述
    原因如下:

    1、结束标记不能有缩进
    2、带有结束标记的行不能包含空格或制表符之类的字符
    3、结束标记前的第一个字符必须是换行符
    4、结束标记后面必须跟一个换行符

    很明显,heredoc 和 nowdoc 语法相当严格,但 PHP 7.3可能会对此稍作改进,如下所示。

    使用 PHP 7.3,我们可以使关闭标记前拥有缩进:
    在这里插入图片描述
    但是要小心: 结束标记永远不应该缩进比字符主体更要进一缩进
    具体参见下面代码
    在这里插入图片描述
    这就会报错了

    另外在PHP7.3废除了从结束标记中删除尾随的新行要求

    7.2有效语法:在这里插入图片描述

    7.3有效写法
    在这里插入图片描述

    3、) json函数抛出错误

    json_decode和json_encode这两个函数都不会在出错时停止程序执行

    当因代码业务原因,需要抛出错误,那么可以采用以下方法来捕捉json异常
    在这里插入图片描述

    PHP7.4特性

    1、)变量类型修饰符
    约定变量类型
    在这里插入图片描述
    2、)箭头函数

    知识拓展:首先来看一下array_map的使用

    在这里插入图片描述

在这里插入图片描述

不知道为什么不能在自定义函数使用?。。。。。。

3、)空合并分配运算符(Null coalescing assignment operator)

在这里插入图片描述

3、)拆包

在这里插入图片描述

php8可详细看这篇文章
https://www.cnblogs.com/a609251438/p/13208591.html

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值