PHP7.4新语法:数组延展操作符

2023年 7月 13日 38.6k 0

数组表达式中对展开操作符(Spread Operator)支持的RFC投票是绝大多数人赞同将此功能添加到PHP7.4。

扩展运算符支持参数解包首先存在于PHP5.6中,并且此RFC扩展了对数组的使用;扩展可以支持Traversable的数组和对象。

这是RFC的一个基本示例:

$parts = ['apple''pear'];$fruits = ['banana''orange', ...$parts'watermelon'];

// ['banana', 'orange', 'apple', 'pear', 'watermelon'];

以下是进一步的示例:

$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一致,不支持字符串键。

遇到字符串键后,将抛出可恢复的错误。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论