我可以跳过带有`list`赋值的数组元素吗?

时间:2015-07-21 12:07:20

标签: php arrays

我们说我有一个函数返回以下数组:

function fruits(){
  $arr = array('apple','orange','banana','pear');
  return $arr;
}

我想在不使用临时变量的情况下将第三个和第四个数组元素分配给变量:

list(NULL,NULL,$banana,$pear) = fruits();

此代码不起作用,但它会显示我希望使用list构造的方式。

我想使用list的原因如下:

  1. 我使用PHP 5.3,因此像fruits()[2]这样的构造不起作用。

  2. 我可以在一行相当可读的代码中做更多的分配

  3. 我想跳过临时变量以减少代码大小并提高其可读性。

  4. 那么有没有可能使用list并跳过一些数组元素?

3 个答案:

答案 0 :(得分:3)

php 5.5.14

function fruits(){
  $arr = array('apple','orange','banana','pear');
  return $arr;
}

list(,,$banana,$pear) = fruits();

echo $banana; // banana

答案 1 :(得分:1)

是的,您可以跳过元素:只省略变量名称:

list(,,$banana,$pear) = fruits();

答案 2 :(得分:0)

PHP 7.1 +

[,,$banana,$pear] = fruits();