我在php脚本中使用这个echo语句,它可以很好地进行
echo "<li class='"ui-state-default'" id=ID_$this->id>$this->course_name <i class='"fa fa-bars'" style='"font-size:0.7em;color:#cccccc;float: right;'"></i> </li>";
现在我想把这个三元语句添加到li标签中
(($benchmark>$thisUser)? style="color:red":"")
本质上是在IF条件下将颜色变成红色。。。现在,它只生成代码。。。。有人知道这应该如何恰当地融入echo语句中吗?感谢
我建议您将代码切成块,以使其更具可读性(利用HTML将多个空格和/或换行符视为唯一空白的事实)。
此外,正如altready其他人所建议的那样,对于这种特殊的情况,为了可读性,最好将三元运算分离。
$color = $benchmark->$thisUser ? '#cccccc' : 'red';
echo "
<li class='ui-state-default' id='ID_$this->id'>
$this->course_name
<i class='fa fa-bars' style='font-size:0.7em; float: right; color:$color;'></i>
</li>
";
如果在回声中包含三元运算,它也会起作用,但看起来不太可读
echo "
<li class='ui-state-default' id='ID_$this->id'>
$this->course_name
<i class='fa fa-bars' style='font-size:0.7em; float: right; color:" . ($benchmark->$thisUser ? '#cccccc' : 'red') . ";'></i>
</li>
";
请注意,在这种情况下,您必须将三元运算包装在括号之间,否则串联将中断。
这不是一个有效的PHP语句:
style="color:red"
你可能想把整件事做成一个字符串:
($benchmark>$thisUser) ? 'style="color:red"' : ''
我不会在echo语句中放入三进制。只需使用一个变量。。。
$liStyle = ($benchmark>$thisUser) ? 'style="color:red"' : '';
echo "<li class='"ui-state-default'" $liStyle id=ID_$this->id>$this->course_name <i class='"fa fa-bars'" style='"font-size:0.7em;color:#cccccc;float: right;'"></i> </li>";