当前位置:首页 > 民俗文化

php7 令人期待的PHP7.4

PHP 7.4是PHP 7的下一个小版本,预计将于2019年11月28日发布到通用版。我们来看看PHP 7.4的新特性,它会让PHP更快更可靠。

当然,我更期待的是PHP 8。因为有些JIT提案已经被批准了,这可能会成为PHP的又一个里程碑。

PHP使用PHP 7.4有哪些新特性?

●支持数组内解包-数组扩展运算符

●箭头功能2.0(较短的闭合)

PHP 7.4将Spread运算符引入数组表达式

从PHP 5.6开始可用,参数解包是一种用于将数组和可遍历数组解包到参数列表中的语法。若要解压缩数组或可遍历数组,它必须以...(3分),如下例所示:

功能测试(...$ args){ var _ dump($ args);}

测试(1,2,3);

然而,PHP 7.4 RFC建议将该函数扩展到数组定义:

$arr = [...$ args];

扩展运算符的第一个好处是性能,RPC文档指出:

Spread运算符应该比array_merge具有更好的性能。这不仅是Spread运算符是一种语法结构,而且array_merge也是一种方法。或者在编译时,优化高效的常量数组

扩展运算符的一个显著优点是它支持任何可遍历的对象,而数组合并函数只支持数组。

以下是带有扩散运算符的数组中的参数示例:

$parts = ['apple ',' pear '];

$水果= ['香蕉','橘子',...$parts,‘西瓜’];

var _ dump($水果);

如果在PHP 7.3或更早版本中运行这段代码,PHP将抛出一个Parse错误:

分析错误:语法错误,意外的“...”(T _省略号),第3行的/app/spread-operator.php中需要']'

相反,PHP 7.4将返回一个数组

数组(5) {

[0]= >

弦(6)“香蕉”

[1]= >

字符串(6)“橙色”

[2]= >

弦(5)“苹果”

[3]= >

弦(4)“梨”

[4]= >

串串(10)“西瓜”

}

RFC声明我们可以多次扩展同一个数组。此外,我们可以在数组的任何地方使用扩展运算符语法,因为我们可以在扩展运算符之前或之后添加常规元素。因此,以下代码将按预期工作:

$arr1 = [1,2,3];

$arr2 = [4,5,6];

$arr3 = [...$arr1,...$ arr 2];

$arr4 = [...$arr1,...$arr3,7,8,9];

您也可以将函数返回的数组作为参数,并将其放入新数组中:

functionbuildArray{

return['red ',' green ',' blue '];

}

$arr1 = [...buildArray,'粉色','紫色','黄色'];

PHP 7.4输出以下数组:

数组(6) {

[0]= >

字符串(3)“红色”

[1]= >

字符串(5)“绿色”

[2]= >

字符串(4)“蓝色”

[3]= >

弦乐(4)“粉色”

[4]= >

弦乐(6)“紫罗兰”

[5]= >

字符串(6)“黄色”

}

我们也可以使用发电机:

函数生成器{

for($ I = 3;$i <。= 5;$i++) {

收益$ I;

}

}

$arr1 = [0,1,2,...发电机];

但是,不允许通过引用传递。请考虑以下示例:

$arr1 = ['红色','绿色','蓝色'];

$arr2 = [...& amp$ arr 1];

如果我们试图传递一个引用,PHP会抛出以下解析错误:

分析错误:语法错误,意外的' & amp'in /app/spread-operator.php第3行

如果第一个数组的元素是通过引用存储的,那么它们也会通过引用存储在第二个数组中。这是一个例子:

$ arr0 = ' red

$ arr 1 =[& amp;$arr0,'绿色','蓝色'];

$arr2 = ['white ',...$arr1,' black '];

这就是我们从PHP 7.4得到的:

数组(5) {

[0]= >

字符串(5)“白色”

[1]= >

& amp字符串(3)“红色”

[2]= >

字符串(5)“绿色”

[3]= >

字符串(4)“蓝色”

[4]= >

字符串(5)“黑色”

}

箭头功能2.0(短闭合)

在PHP中,匿名函数被认为非常冗长,难以实现和维护。RFC建议引入更简单、更清晰的箭头函数(或简称闭包)语法,这样我们可以简洁地编写代码。

PHP 7.4之前:

functioncube($n){

return($ n * $ n * $ n);

}

$a = [1,2,3,4,5];

$b = array_map('cube ',$ a);

print _ r($ b);

PHP 7.4允许更简单的语法,上面的函数可以重写如下:

$a = [1,2,3,4,5];

$ b = array _ map(fn($ n)= & gt;$n * $n * $n,$ a);

print _ r($ b);

目前,由于语言结构的原因,匿名函数(闭包)可以用来继承父作用域中定义的变量,如下所示:

$ factor = 10

$ calc = function($ num)use($ factor){

返回$ num * $ factor

};

但是,在PHP 7.4中,父作用域的值被隐式捕获(由值的作用域隐式绑定)。所以我们可以用一行来完成这个功能:

$ factor = 10

$calc = fn($num) =>。$ num * $ factor

父作用域定义的变量可以用在arrow函数中,相当于我们使用的use,不能被父作用域修改。

新的语法是对语言的巨大改进,因为它允许我们构建更易读和可维护的代码。

空合并运算符

因为在日常使用中有很多三进制表达式和isset同时使用的情况,所以我们加入null组合运算符(??)这个语法糖。如果一个变量存在,并且它的值不为空,它将返回它自己的值,否则它将返回它的第二个操作数。

$username = $_GET['user']??没人;

这段代码的功能非常简单:它获取请求参数,如果不存在,则设置默认值。但是在RFC的例子中,如果我们有一个更长的变量名呢?

$this->。请求->;data[' comments '][' user _ id ']= $ this-& gt。请求->;data['comments']['user_id']??值';

从长远来看,这段代码可能很难维护。所以为了帮助开发人员写出更直观的代码,这个RFC建议引入null _ concert _ equal _ operator??=,因此我们可以键入以下代码来代替上面的代码:

$this->。请求->;data['comments']['user_id']??= ' value

如果左参数的值为空,则使用右参数的值。

1.《php7 令人期待的PHP7.4》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《php7 令人期待的PHP7.4》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1618246.html

上一篇

楼兰美女干尸 楼兰美女之谜 四千年干尸栩栩如生

下一篇

亚特兰蒂斯真实照片 传说中的亚特兰蒂斯真实存在吗

三角函数转换 三角函数图像的“变态”变换

  • 三角函数转换 三角函数图像的“变态”变换
  • 三角函数转换 三角函数图像的“变态”变换
  • 三角函数转换 三角函数图像的“变态”变换

三角函数图像平移伸缩变换 三角函数图像的“变态”变换

  • 三角函数图像平移伸缩变换 三角函数图像的“变态”变换
  • 三角函数图像平移伸缩变换 三角函数图像的“变态”变换
  • 三角函数图像平移伸缩变换 三角函数图像的“变态”变换

sumif函数求和怎么用 Excel怎样隔列求和?这2个函数你要会用

  • sumif函数求和怎么用 Excel怎样隔列求和?这2个函数你要会用
  • sumif函数求和怎么用 Excel怎样隔列求和?这2个函数你要会用
  • sumif函数求和怎么用 Excel怎样隔列求和?这2个函数你要会用

if函数4个条件4个结果 COUNTIF函数到底有多好用,看看这4个实例就知道

  • if函数4个条件4个结果 COUNTIF函数到底有多好用,看看这4个实例就知道
  • if函数4个条件4个结果 COUNTIF函数到底有多好用,看看这4个实例就知道
  • if函数4个条件4个结果 COUNTIF函数到底有多好用,看看这4个实例就知道
交叉熵损失函数 深度学习19种损失函数,你认识几个?

交叉熵损失函数 深度学习19种损失函数,你认识几个?

本文转自CSDN,作者:明哥敏 损耗函数由torch.nn包实现 基本用法 criterion = LossCriterion #构造函数有自己的参数 loss = criterion(x, y) #调用标准时也有参数 19损失函数 1.L1范数损失L1损失 计算输出和目标之间差值的绝对值...

sumif函数的使用方法 COUNTIF与SUMIF函数的常见用法

  • sumif函数的使用方法 COUNTIF与SUMIF函数的常见用法
  • sumif函数的使用方法 COUNTIF与SUMIF函数的常见用法
  • sumif函数的使用方法 COUNTIF与SUMIF函数的常见用法

excel公式加减乘除 Excel常用教程——加减乘除法函数用法?

  • excel公式加减乘除 Excel常用教程——加减乘除法函数用法?
  • excel公式加减乘除 Excel常用教程——加减乘除法函数用法?
  • excel公式加减乘除 Excel常用教程——加减乘除法函数用法?

excel加减乘除 Excel常用教程——加减乘除法函数用法?

  • excel加减乘除 Excel常用教程——加减乘除法函数用法?
  • excel加减乘除 Excel常用教程——加减乘除法函数用法?
  • excel加减乘除 Excel常用教程——加减乘除法函数用法?