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

发布于 2022-09-06 00:05:36 字数 172 浏览 10 评论 0

例如js中可以这么写:

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

恏ㄋ傷疤忘ㄋ疼 2022-09-13 00:05:36

php7.1 已经提供类似方法

$array = ["a" => 1, "b" => 2, "c" => 3];

["a"=>$a, "c"=>$c] = $array;

echo $a,$c; // 13
著墨染雨君画夕 2022-09-13 00:05:36

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;
?>

结果将会报错

clipboard.png

日暮斜阳 2022-09-13 00:05:36
<?php

$arr = array(
    'a'=>4,
    'b'=>2,
);

list($a,$b) = array_values($arr);

echo $a.','.$b;

将关联数组转换成索引数组

转身以后 2022-09-13 00:05:36

有个东西叫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;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文