如何为使用list()设置的变量提供默认值?
问题描述:
假设我有一个数组是这样的:如何为使用list()设置的变量提供默认值?
$arr1 = ('red', 'blue');
,然后我做的:
list($color1, $color2, $color3) = $arr1;
我得到2个数组值漂亮的变量。
是否有可能以某种方式设置$color3
有一个默认值,如果它不存在于数组中,但代码尽可能少(不使用if
检查和类似的东西)?
我试着用list($color1 = 'default', $color2 = 'default', $color3 = 'default') = $arr1;
,但它不工作...
答
$yourColors = array('red', 'green');
$defaultColors = array('yellow', 'blue', 'cyan');
list($color1, $color2, $color3) = $yourColors + $defaultColors;
$color1
会 '红色'
$color2
会 '绿色'
$color3
会 '青色'
答
试试这个:
$color1 = $color2 = $color3 = array(); // ...or whatever else you want it to be set to
list($color1, $color2, $color3) = $arr1;
答
如果使用默认值第一初始化变量,比这将是可能的,
$color1 = $color2 = $color3 =" Blue";
$arr1 = array('red','green');
list($color1, $color2, $color3) = $arr1;
现在$ color3不会在list函数中设置;所以它会保持原来的价值;
您可以预先指定'$ colorN '让'list'覆盖默认值。然而,如果'$ arr1'没有足够的物品,你会收到通知,如果你这样做。恕我直言,给出通知的代码应该重写以解决问题。 – Jon 2011-05-08 18:53:05