APP下载

PHP 7.3正式释出,强化大量文字与JSON处理能力

消息来源:baojiabao.com 作者: 发布时间:2024-04-25

报价宝综合消息PHP 7.3正式释出,强化大量文字与JSON处理能力

PHP 7在2015年释出后,官方在2018年末释出了PHP 7.3稳定版,作为PHP 7第3次功能更新。这次的更新带来了不少新功能,提升了执行效能,修正了大量的臭虫,同时也弃用了部分功能。

PHP 7.3中第一个值得注意的就是弹性Heredoc与Nowdoc语法实作。Heredoc提供了一种添加大量文字的方法,让开发者不再需要使用像是双引号的跳脱字元进行转义,Heredoc以<<<开头,后面跟着一个记号,最后也会以相同记号加上一个分号结束。

而Nowdoc与Heredoc的行为相似,只是<<<之后的记号必须要以单引号夹住,而且Nowdoc中不进行任何的字串解析。两者使用相同的规则规范结束记号(Closing Marker)使用,结束记号必须从该行的第一列开始,而且记号必须遵循与PHP中任何其他记号相同的命名规则,只能包含字母数字和下底线,而且必须要以非数字或是下底线开头。

官方提到,Heredoc和Nowdoc语法很有弹性,字串结束记号不再需要分号或是换行符号,另外,结束记号可以缩排,而在这种情况缩排将会从Doc字串中的每一行被拿掉。

在PHP 7.3中,允许在函式呼叫中使用尾随逗号(Trailing Comma),尾随逗号是附加元素、参数或是属性到列表中的逗号,由于呼叫附带许多参数的函式很常见,因此这项更新将使得在这些上下文中附加参数更为方便,特别是在可变函数中。

JSON的错误处理在这次更新也获得强化,而且在RFC中获得投票23比0一致通过。在PHP 7.2中,要确定JSON是否有效,必须使用函式json_last_error()来验证,以确保在呼叫json_encode()和json_decode()时不会发生错误,这个方法虽然可以确定JSON编码与解码是否发生错误,但比起直接抛出异常还是稍嫌笨拙,因为它将错误与讯息整个打包在一起。

在PHP 7.3中,新增了JSON_THROW_ON_ERROR标签,可以让开发者捕捉和处理JSON异常,当在json_encode()和json_decode()这两个函式传递这个标签时,在发生错误时便会抛出异常。

在PHP 7.3中加入了新的语法,让开发者可以在list()使用参照赋值。开发者可以透过参考赋值的方式,将两个变数指向相同的资料,而任意变数的更改都会影响原始资料。官方文件提到,虽然list()的赋值与参照赋值已经存在很长一段时间,然而,PHP 7.2之前却无法真正使用list()参照赋值。这项更新的意义代表,开发者现在可以对多个变数进行参照赋值。

在功能弃用的部分,为记录的mbstring函式别名(Function Aliases)将被弃用,使用mb_作为前缀的等效函式的副本,像是mb_ereg的别名mbereg,这些函式都将被标记为弃用,在编译时会抛出弃用通知。另外,非字串Needle的字串搜寻函式也将被弃用,因此传递非字串Needle给字串搜寻函式将无法使用,在PHP 7.3中这些Needle需要被转换成字串。

2019-01-16 23:37:00

相关文章