如何在PHP中实现类似JavaScript的数组剩余元素解构?
在PHP中实现类似JavaScript的数组剩余解构功能
你想要实现的是把数组前两个元素赋值给单独变量,剩余所有元素收集到一个变量里的功能,在PHP 7.1及以上版本中,直接用**扩展运算符(...)**就能实现和JavaScript一样的数组剩余解构效果,不需要用$c[]这种写法。
正确代码示例
<?php $array = [10, 20, 30, 40, 50]; // 使用扩展运算符实现剩余元素收集 [$a, $b, ...$c] = $array; echo "$a<br>$b<br>"; print_r($c); ?>
输出结果
10 20 Array ( [0] => 30 [1] => 40 [2] => 50 )
为什么你原来的写法不行?
你之前用的[$a, $b, $c[]] = $array,这种写法只会把数组的第三个元素(值为30)追加到$c数组里,PHP的解构语法中,$c[]只是单个元素的赋值操作,并不会自动收集后续所有剩余元素。只有扩展运算符...才具备“收集剩余所有元素到目标数组”的能力。
如果你的PHP版本低于7.1,无法使用扩展运算符解构,可以用array_slice()手动实现:
<?php $array = [10, 20, 30, 40, 50]; $a = $array[0]; $b = $array[1]; $c = array_slice($array, 2); echo "$a<br>$b<br>"; print_r($c); ?>
内容的提问来源于stack exchange,提问作者Zaid Malek
相关产品推荐
相关产品推荐

