만약 블록 인사이드 에코 문장이라면?
구문 오류: 구문 오류, 예기치 않은 T_가 발생하여 허용되지 않는 것 같습니다.만약에..." 오류가 발생했습니다.하지만 저는 제 목표를 달성할 방법을 찾지 못했습니다.제 암호는 이렇습니다.
<?php
$countries = $myaddress->get_countries();
foreach($countries as $value){
echo '<option value="'.$value.'"'.if($value=='United States') echo 'selected="selected"';.'>'.$value.'</option>';
}
?>
선택한 요소의 국가 목록을 표시하고 미국을 기본값으로 설정합니다.전 슬프게 일하지 않아요...
단축 IF/Else 문 역할을 하는 항공 연산자를 사용하고자 합니다.
echo '<option value="'.$value.'" '.(($value=='United States')?'selected="selected"':"").'>'.$value.'</option>';
언제든지 사용할 수 있습니다.( <condition> ? <value if true> : <value if false> )
syntax (ternary operator라고 합니다 - 나를 기억해준 Mark 덕분입니다 :)).
한다면<condition>
사실이고, 그 진술은 다음과 같이 평가될 것입니다.<value if true>
. 그렇지 않다면 다음과 같이 평가될 것입니다.<value if false>
예를 들어 다음과 같습니다.
$fourteen = 14;
$twelve = 12;
echo "Fourteen is ".($fourteen > $twelve ? "more than" : "not more than")." twelve";
이는 다음과 같습니다.
$fourteen = 14;
$twelve = 12;
if($fourteen > 12) {
echo "Fourteen is more than twelve";
}else{
echo "Fourteen is not more than twelve";
}
3원 연산자 사용:
echo '<option value="'.$value.'"'.($value=='United States' ? 'selected="selected"' : '').'>'.$value.'</option>';
그리고 그렇게 하는 동안, 당신은printf
코드를 보다 쉽게 읽을 수 있도록 하기 위해 다음을 수행합니다.
printf('<option value="%s" %s>%s</option>',
$value,
$value == 'United States' ? 'selected="selected"' : ''
$value);
가독성을 위해 그것은 다음과 같은 것이어야 합니다.
<?php
$countries = $myaddress->get_countries();
foreach($countries as $value) {
$selected ='';
if($value=='United States') $selected ='selected="selected"';
echo '<option value="'.$value.'"'.$selected.'>'.$value.'</option>';
}
?>
모든 것을 한 줄로 묶고 싶은 욕망은 죽음입니다.또박또박 써라.
하지만 또 다른 방법이 있습니다. 더 좋은 방법이죠.에코를 전혀 사용할 필요가 없습니다.템플릿 사용법을 배웁니다.데이터를 먼저 준비하고 준비된 상태에서만 표시합니다.
비즈니스 로직 파트:
$countries = $myaddress->get_countries();
$selected_country = 1;
템플릿 부분:
<? foreach($countries as $row): ?>
<option value="<?=$row['id']?>"<? if ($row['id']==$current_country):> "selected"><? endif ?>
<?=$row['name']?>
</option>
<? endforeach ?>
언급URL : https://stackoverflow.com/questions/3507042/if-block-inside-echo-statement
'programing' 카테고리의 다른 글
Null 포인터 주소에 액세스하는 C 표준 준수 방법? (0) | 2023.10.22 |
---|---|
두 표의 데이터가 정확히 동일한지 확인하는 방법은? (0) | 2023.10.22 |
레일/앵글 배포 시 알 수 없는 공급자 오류JS 앱에서 헤로쿠로 (0) | 2023.10.22 |
어떻게 액시오스 요격기를 사용할 수 있습니까? (0) | 2023.10.22 |
선언 지정자에 둘 이상의 데이터 형식 오류가 있습니다. (0) | 2023.10.22 |