猿问

php 有没有类似js里面的解构赋值操作?

例如js中可以这么写:

let o = {
    a:1,
    b:2,
    c:3
};
let {a,b} = o;
console.log(a);//1
console.log(b);//2

我知道php中有个list,但是仅能用于数字索引的数组。

HUX布斯
浏览 719回答 4
4回答

慕标琳琳

php7.1 已经提供类似方法 $array = ["a" => 1, "b" => 2, "c" => 3]; ["a"=>$a, "c"=>$c] = $array; echo $a,$c; // 13

jeck猫

list()只用于数字索引的数组,且假定数字索引从 0 开始。当数组不是数字数组而是关联数组时,如: <?php $my_array = array('a'=>'Dog','b'=>'Cat','c'=>'Horse'); list($a, $b, $c) = $my_array; echo 'I have several animals, a '.$a.', a '.$b.' and a '.$c; ?> 结果将会报错

慕哥9229398

<?php $arr = array( 'a'=>4, 'b'=>2, ); list($a,$b) = array_values($arr); echo $a.','.$b; 将关联数组转换成索引数组

偶然的你

有个东西叫each <?php $my_array = array('a'=>'Dog','b'=>'Cat','c'=>'Horse'); list($a, $b, $c) = each($my_array); echo 'I have several animals, a '.$a.', a '.$b.' and a '.$c;
随时随地看视频慕课网APP
我要回答