2011-05-08 5 views
1

다음과 같은 배열이 있다고 가정하십시오 :list()로 설정된 변수에 대한 기본값을 제공하는 방법?

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

그리고 나서 :

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

배열 값으로 2 개의 좋은 변수를 얻습니다.

어쨌든 $color3을 배열에없는 경우 $color3을 기본값으로 설정할 수 있습니까? 가능한 한 적은 코드로 (if 검사와 같은 것을 사용하지 않고)?

list($color1 = 'default', $color2 = 'default', $color3 = 'default') = $arr1;으로 시도했지만 작동하지 않습니다 ...

+0

당신은 사전에 할당 할 수있는'$ colorN ''list '가 디폴트 값을 덮어 씌우도록합니다. 그러나'$ arr1'에 충분한 항목이 없다면 그렇게하면 고지를 얻게 될 것입니다. IMHO, 문제를 해결하기 위해 고지 사항을 제공하는 코드를 다시 작성해야합니다. – Jon

답변

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은 목록 기능에 설정되지 않습니다. 그래서 원래 값을 유지할 것입니다;

관련 문제