索引数组解构是按位置的,而关联数组解构是按命名的。
注意:解构语法是并行的。
1.索引数组解构
1.1用于变量赋值
//左侧数量等于右侧数量
[$a, $b] = [1, 2];
echo $a, $b; // 1 2
//左侧数量小于右侧数量
//右侧多余的元素会被忽略
[$a, $b] = [1, 2, 3];
echo $a, $b; // 1 2
//左侧数量大于右侧数量
//左侧多余的变量会报错
[$a, $b, $c] = [1, 2];
echo $a, $b, $c; // 1 2 报错
左侧的变量还支持占位语法。
//左侧数量等于右侧数量
[$a, ] = [1, 2];
echo $a; // 1
//左侧数量小于右侧数量
[$a, ] = [1, 2, 3];
echo $a; // 1
//左侧数量大于右侧数量
[$a, ] = [1];
echo $a; // 1
1.2用于函数形参
PHP 语言不支持用于函数形参。
2.关联数组解构
2.1用于变量赋值
//左侧数量等于右侧数量
['a' => $a, 'b' => $b] = ['a' => 1, 'b' => 2];
echo $a, $b; // 1 2
//左侧数量小于右侧数量
//右侧多余的属性会被忽略
['a' => $a, 'b' => $b] = ['a' => 1, 'b' => 2, 'c' => 3];
echo $a, $b; // 1 2
//左侧数量大于右侧数量
//左侧多余的变量会报错
['a' => $a, 'b' => $b, 'c' => $c] = ['a' => 1, 'b' => 2];
echo $a, $b, $c; // 1 2 报错
2.2用于函数形参
PHP 语言不支持用于函数形参。
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/phpexp/38220.html