数组声明中的PHP Spread语法
作者:互联网
PHP支持variadic functions的扩展语法.
在JavaScript中,您可以使用扩展语法来执行this:
var a = [1, 2];
var b = [...a, 3, 4];
console.log(b); // [1, 2, 3, 4]
但是,尝试在PHP中执行此操作:
$a = [1, 2];
$b = [...$a, 3, 4];
var_dump($b);die;
结果出现此错误:
Parse error: syntax error, unexpected ‘…’ (T_ELLIPSIS), expecting ‘]’
在PHP中不允许这种方式使用扩展语法吗?如果是这样,是否有同样优雅的方式来达到同样的效果?
解决方法:
the arrays RFC中的扩展运算符已在PHP 7.4中实现:
$ary = [3, 4, 5];
return [1, 2, ...$ary]; // same as [1, 2, 3, 4, 5]
警告:解压缩的数组/ Traversable只能有整数键.对于字符串键,仍然需要array_merge().
标签:spread-syntax,php,arrays,variadic-functions 来源: https://codeday.me/bug/20191001/1837308.html