如果阻止回声语句内部?

php
2022-08-30 09:03:39

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

<?php 

  $countries = $myaddress->get_countries();

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

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


答案 1

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

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

答案 2

你总是可以使用语法(它被称为三元运算符 - 感谢Mark:))。( <condition> ? <value if true> : <value if false> )

如果为 true,则该语句将计算为 。如果不是,则将其评估为<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";
}

推荐