2011-05-08 153 views
1

假设我有一个数组是这样的:如何为使用list()设置的变量提供默认值?

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

,然后我做的:

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

我得到2个数组值漂亮的变量。

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

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

+0

您可以预先指定'$ colorN '让'list'覆盖默认值。然而,如果'$ arr1'没有足够的物品,你会收到通知,如果你这样做。恕我直言,给出通知的代码应该重写以解决问题。 – Jon 2011-05-08 18:53:05

回答

1
$yourColors = array('red', 'green'); 
$defaultColors = array('yellow', 'blue', 'cyan'); 

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

$color1会 '红色'

$color2会 '绿色'

$color3会 '青色'

1

试试这个:

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

如果使用默认值第一初始化变量,比这将是可能的,

$color1 = $color2 = $color3 =" Blue"; 

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

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

相关问题