标签if的问题


Problems with tag ifs

你好stackoverflow的人,我需要一些关于我在做什么信息。有可能在一个标签里有两个if吗?例如,if(a > b) then a=a; else if (c>d) then a=c; else a=d;,我试着这样做。下面是代码:

echo '<select class="text" name="task_type">';
foreach ($task_types as $key => $value) {
    echo '<option value="'.$key.'"'.($key == $obj->task_type ? 'selected="selected"' : $key == '-1' ? 'selected="selected"' : '').'>'.$value.'</option>';
}
echo '</select>';

在option标签中可以看到这些if。但问题是,当它出现时。它选择-1键和$obj->task_type键。但是它应该只选择这个$obj->task_type。

括号的位置有问题。正确的语法是-

(expr1) ?(expr2): (expr3)

 echo '<select class="text" name="task_type">';
 foreach ($task_types as $key => $value) {
    echo '<option value="'.$key.'"'.($key == $obj->task_type )?      'selected="selected"' : ($key == '-1') ? 'selected="selected"' : '' .'>'.$value.'</option>';
}
echo '</select>';