2011-02-12 5 views
0

PHP 구문에 대한 도움이 필요합니다. 나는기본 PHP 구문에 대한 도움말

$monthOptions .= "<option value=\"$month\" >$month</option>\n"; 

그래서 것 같습니다하는 옵션 값 내에서, 다음 줄의 라인

if ($month == $dbmonth) echo ' selected="selected"'; 

다음 추가 할 수 있습니다 방법 : (. $dbmonth = 3 가정)

<option value="3" selected="selected" > 3 </option> 

도움 주셔서 감사합니다.

내가 생각

답변

2
echo '<option value="'.$month.'"' 
    .($month==$dbmonth?' selected="selected':'') 
    .'>'.$month.'</option> 

는, 인라인 상태 사용 (위해 (<condition>?<true outcome>:<false outcome>)

을거야 무엇이며이 루프에있는 경우 :

for ($month = 1; $month < 13; $month++) 
    echo '<option value="'.$month.'"' 
     .($month==$dbmonth?' selected="selected':'') 
     .'>'.$month.'</option> 

또한 그것을 탈출 할 수 조금 더 읽기 쉽게 :

for ($month = 1; $month < 13; $month++) 
{ 
    $selected = ''; 
    if ($month == $dbmonth) 
    $selected = ' selected="selected"'; 
    echo "<option value=\"{$month}\"{$selected}>{$month}</option"; 
} 
+0

주셔서 감사합니다. – adam

+0

@adam : 기꺼이 도와 드리겠습니다. ;-) –

0

다음과 같이 할 수 있습니다.

$monthOptions .= "<option value=\"$month\"" 
if ($month == $dbmonth) $monthOptions .= ' selected="selected"'; 
$monthOptions .= ">$month</option>\n"; 
0

다른 제안이 작동하지만 가독성을 위해 내가 선호하는 것 :

$selected = ($month == $dbmonth) ? ' selected="selected"' : ''; 

$monthOptions .= "<option value=\"$month\" $selected >$month</option>\n"; 

도 덜 스파게티 코드가, 그리고 결국은 템플릿 시스템의 일종으로 전환 할 수 있습니다.

관련 문제