位置: 编程技术 - 正文
推荐整理分享PHP 7.1新特性的汇总介绍(php8.0 特性),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php8.0 特性,php7.0新特性,php7.0新特性,php7.0新特性,php7的新特性有哪些,php 7.4新特性,php 7.4新特性,php7.3新特性,内容如对您有帮助,希望把文章链接给更多的朋友!
一、可空类型
可空类型主要用于参数类型声明和函数返回值声明。
主要的两种形式如下:
从例子很容易理解,所指的就是通过 的形式表明函数参数或者返回值的类型要么为指定类型,要么为 null。
此方法也可用于接口函数的定义:
但有一个需要注意的地方:如果函数本身定义了参数类型并且没有默认值,即使是可空的,也不能省略,否则会触发错误。如下:
但是如果以上函数的参数定义为 Bar $bar = null 的形式,则第三种写法也是可行的。因为 = null 实际上相当于 的超集,对于可空类型的参数,可以设定 null 为默认值。
二、list 的方括号简写
我们知道在 PHP5.4 之前只能通过 array() 来定义数组,5.4之后添加了 [] 的简化写法(省略了5个字符还是很实在的)。
引申到另外一个问题上,如果我们要把数组的值赋值给不同的变量,可以通过 list 来实现:
是否也可以通过 [] 的简写来实现呢?
以及下一个特性中会提到的 list 指定 key:
PHP7.1 实现了这个特性。但是要注意的是:出现在左值中的 [] 并不是数组的简写,是 list() 的简写。
但是并不仅仅如此,新的 list() 的实现并不仅仅可以出现在左值中,也能在 foreach 循环中使用:
不过因为实现的问题,list() 和 [] 不能相互嵌套使用:
三、允许在 list 中指定 key
上文提到过,新的 list() 的实现中可以指定key:
这也就相当于:
和以往的区别在于以往的 list() 的实现相当于 key 只能是 0, 1, 2, 3 的数字形式并且不能调整顺序。执行以下语句:
会得到 PHP error: Undefined offset: 0... 的错误。
而新的实现则可以通过以下方式来调整赋值:
不同于数组的是,list 并不支持混合形式的 key,以下写法会触发解析错误:
更复杂的情况,list 也支持复合形式的解析:
以及循环中使用:
四、void 返回类型
PHP7.0 添加了指定函数返回类型的特性,但是返回类型却不能指定为 void,7.1 的这个特性算是一个补充:
以下两种情况都可以通过验证:
定义返回类型为 void 的函数不能有返回值,即使返回 null 也不行:
此外 void 也只适用于返回类型,并不能用于参数类型声明,或者会触发错误:
类函数中对于返回类型的声明也不能被子类覆盖,否则会触发错误:
五、类常量属性设定
这个特性说起来比较简单,就是现在类中的常量支持使用 public、private 和 protected 修饰了:
此外,接口(interface)中的常量只能是 public 属性:
为了应对变化,反射类的实现也相应的丰富了一下,增加了 getReflectionConstant 和 getReflectionConstants 两个方法用于获取常量的额外属性:
六、多条件 catch
在以往的 try ... catch 语句中,每个 catch 只能设定一个条件判断:
新的实现中可以在一个 catch 中设置多个条件,相当于或的形式判断:
对于异常的处理简化了一些。
总结
标签: php8.0 特性
本文链接地址:https://www.jiuchutong.com/biancheng/296377.html 转载请保留说明!友情链接: 武汉网站建设