在数组表达式中对展开操作符(Spread Operator)支持的 RFC 投票是 绝大多数人赞同 将此功能添加到 PHP 7.4。
扩展运算符支持参数解包首先存在于 PHP 5.6 中,并且此 RFC 扩展了对数组的使用;扩展可以支持 Traversable 的数组和对象。这是 RFC 的一个基本示例:
1
2
3
|
$parts = [ 'apple' , 'pear' ];
$fruits = [ 'banana' , 'orange' , ... $parts , 'watermelon' ];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
|
以下是进一步的示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
$arr1 = [1, 2, 3];
$arr2 = [... $arr1 ]; // [1, 2, 3]
$arr3 = [0, ... $arr1 ]; // [0, 1, 2, 3]
$arr4 = array (... $arr1 , ... $arr2 , 111); // [1, 2, 3, 1, 2, 3, 111]
$arr5 = [... $arr1 , ... $arr1 ]; // [1, 2, 3, 1, 2, 3]
function getArr() {
return [ 'a' , 'b' ];
}
$arr6 = [...getArr(), 'c' ]; // ['a', 'b', 'c']
$arr7 = [... new ArrayIterator([ 'a' , 'b' , 'c' ])]; // ['a', 'b', 'c']
function arrGen() {
for ( $i = 11; $i < 15; $i ++) {
yield $i ;
}
}
$arr8 = [...arrGen()]; // [11, 12, 13, 14]
|
不支持字符串键;你只能使用索引数组。 RFC 的作者对关键的支持做了如下说明:
为了使行为与 argument unpacking 一致,不支持字符串键。遇到字符串键后,将抛出可恢复的错误。
以上就是本次介绍PHP 7.4 中数组延展操作符语法知识点,感谢大家的学习和对服务器之家的支持。