【问题标题】:How to provide default values for variables set with list()?如何为使用 list() 设置的变量提供默认值?
【发布时间】:2011-08-21 05:33:52
【问题描述】:

假设我有一个这样的数组:

$arr1 = ('red', 'blue');

然后我做:

list($color1, $color2, $color3) = $arr1;

我得到了 2 个带有数组值的不错的变量。

是否有可能以某种方式将$color3 设置为具有默认值,以防它不存在于数组中,但使用尽可能少的代码(不使用if 检查和类似的东西)?

我尝试使用list($color1 = 'default', $color2 = 'default', $color3 = 'default') = $arr1;,但它不起作用...

【问题讨论】:

  • 您可以预先分配$colorN 并让list 覆盖默认值。但是,如果$arr1 没有足够的项目,您将收到通知。恕我直言,应该重写发出通知的代码以解决问题。

标签: php arrays list


【解决方案1】:
$yourColors = array('red', 'green');
$defaultColors = array('yellow', 'blue', 'cyan');

list($color1, $color2, $color3) = $yourColors + $defaultColors;

$color1 将是“红色

$color2 将是'绿色'

$color3 将是'青色'

【讨论】:

    【解决方案2】:

    试试这个:

    $color1 = $color2 = $color3 = array();  // ...or whatever else you want it to be set to
    list($color1, $color2, $color3) = $arr1;
    

    【讨论】:

      【解决方案3】:

      如果您首先使用默认值初始化变量,那么这是可能的,

      $color1 = $color2 = $color3 =" Blue";
      
      $arr1 = array('red','green');
      list($color1, $color2, $color3) = $arr1;
      

      现在 $color3 不会在列表函数中设置;所以它会保持原来的价值;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-14
        • 2011-07-31
        • 2017-01-16
        • 1970-01-01
        • 1970-01-01
        • 2014-03-12
        • 1970-01-01
        • 2018-08-19
        相关资源
        最近更新 更多