自 PHP7.1 起,
foreach()
表达式可以实现数组解构作为解包行值并进行个性化变量分配以供以后使用的方式。
在
foreach()
循环的头/签名中使用数组解构时,是否可以声明新元素而不仅仅是访问?
例如:
$array = [
['foo' => 'a', 'bar' => 1],
['foo' => 'b', 'bar' => 2],
];
我可以使用键
new
将新元素附加到原始数组的每一行吗?
是的,数据可以直接附加到
foreach()
头部的原始输入数组的行中。
详情:
&
的变量)——否则没有指示修改原始数组。null
。代码:(演示)
$array = [
['foo' => 'a', 'bar' => 1],
['foo' => 'b', 'bar' => 2],
];
foreach ($array as ['new' => &$x, 'bar' => $x]);
var_export($array);
输出:
array (
0 =>
array (
'foo' => 'a',
'bar' => 1,
'new' => 1,
),
1 =>
array (
'foo' => 'b',
'bar' => 2,
'new' => 2,
),
)