如果阻塞里面的echo语句?

Joa*_*ann 53 php

我怀疑它是不允许的,因为我得到"解析错误:语法错误,意外的T_IF in ..."错误.但我无法找到实现目标的方法.这是我的代码:

<?php 

  $countries = $myaddress->get_countries();

  foreach($countries as $value){
    echo '<option value="'.$value.'"'.if($value=='United States') echo 'selected="selected"';.'>'.$value.'</option>';
  }
  ?>
Run Code Online (Sandbox Code Playgroud)

它的作用是在选择元素中显示国家/地区列表,并将美国设置为默认值.我伤心地工作......

Jim*_* W. 145

你会想要使用 作为缩短的IF/Else声明的三元运算符:

echo '<option value="'.$value.'" '.(($value=='United States')?'selected="selected"':"").'>'.$value.'</option>';
Run Code Online (Sandbox Code Playgroud)

  • 这就是三元运算符有用的地方.这很快,非常感谢! (3认同)
  • 它是*a*三元运算符,但不是三元运算符(虽然我不知道任何其他三元运算符).另一个常用术语是条件运算符. (2认同)

Frx*_*rem 13

你可以随时使用( <condition> ? <value if true> : <value if false> )语法(它被称为三元运算符 - 感谢Mark提醒我:)).

如果<condition>为true,则语句将被评估为<value if true>.如果没有,它将被评估为<value if false>

例如:

$fourteen = 14;
$twelve = 12;
echo "Fourteen is ".($fourteen > $twelve ? "more than" : "not more than")." twelve";
Run Code Online (Sandbox Code Playgroud)

这与:

$fourteen = 14;
$twelve = 12;
if($fourteen > 12) {
  echo "Fourteen is more than twelve";
}else{
  echo "Fourteen is not more than twelve";
}
Run Code Online (Sandbox Code Playgroud)


Ed *_*zur 8

使用三元运算符:

echo '<option value="'.$value.'"'.($value=='United States' ? 'selected="selected"' : '').'>'.$value.'</option>';
Run Code Online (Sandbox Code Playgroud)

在您使用它时,您可以使用它printf来使您的代码更具可读性/可管理性:

printf('<option value="%s" %s>%s</option>',
    $value,
    $value == 'United States' ? 'selected="selected"' : ''
    $value);
Run Code Online (Sandbox Code Playgroud)


You*_*nse 7

为了便于阅读,它应该是类似的

<?php 
  $countries = $myaddress->get_countries();
  foreach($countries as $value) {
    $selected ='';
    if($value=='United States') $selected ='selected="selected"'; 
    echo '<option value="'.$value.'"'.$selected.'>'.$value.'</option>';
  }
?>
Run Code Online (Sandbox Code Playgroud)

渴望把所有东西都放在一条线上是一种死亡,男人.写清楚.

但还有另一种方式,一种更好的方式.根本不需要使用回声.学习使用模板.首先准备数据,然后显示它,然后再准备好.

业务逻辑部分:

$countries = $myaddress->get_countries();
$selected_country = 1;    
Run Code Online (Sandbox Code Playgroud)

模板部分:

<? foreach($countries as $row): ?>
<option value="<?=$row['id']?>"<? if ($row['id']==$current_country):> "selected"><? endif ?>
  <?=$row['name']?>
</option>
<? endforeach ?>
Run Code Online (Sandbox Code Playgroud)