如果块内部的回声陈述?

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

<?php 

  $countries = $myaddress->get_countries();

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

它所做的是显示select元素中的国家/地区列表,并将美国设置为默认值。 我不伤心地工作......


您将需要使用一个三元运算符,它充当缩短的IF / Else语句:

echo '<option value="'.$value.'" '.(($value=='United States')?'selected="selected"':"").'>'.$value.'</option>';

使用三元运算符:

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);

你总是可以使用( <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";

这与以下内容相同:

$fourteen = 14;
$twelve = 12;
if($fourteen > 12) {
  echo "Fourteen is more than twelve";
}else{
  echo "Fourteen is not more than twelve";
}
链接地址: http://www.djcxy.com/p/12009.html

上一篇: if block inside echo statement?

下一篇: Parse error: syntax error, unexpected end of file (Registration script)