为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
HUX布斯 2019-03-10 08:30:25
例如js中可以这么写: let o = { a:1, b:2, c:3 }; let {a,b} = o; console.log(a);//1 console.log(b);//2 我知道php中有个list,但是仅能用于数字索引的数组。
查看完整描述

4 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

php7.1 已经提供类似方法

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

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

echo $a,$c; // 13
查看完整回答
反对 回复 2019-03-18
?
jeck猫

TA贡献1909条经验 获得超7个赞

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

结果将会报错

https://img1.sycdn.imooc.com//5c8f66800001cfac05330172.jpg

查看完整回答
反对 回复 2019-03-18
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

<?php

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

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

echo $a.','.$b;

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

查看完整回答
反对 回复 2019-03-18
?
偶然的你

TA贡献1841条经验 获得超3个赞

有个东西叫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;
查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 718 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信