在echo语句中添加三元运算符

时间:2016-01-01 00:12:54

标签: php

我在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语句?感谢

3 个答案:

答案 0 :(得分:1)

这不是一个有效的PHP语句:

style="color:red"

你可能想把整个事情变成一个字符串:

($benchmark>$thisUser) ? 'style="color:red"' : ''

答案 1 :(得分:1)

我不会将三元组放入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>";

答案 2 :(得分:1)

我建议你将代码剪切成块,以使其更具可读性(利用HTML处理多个空格和/或换行符就像一个独特的空格一样)。

此外,正如其他人所建议的那样,对于这种特殊情况,您最好将三元操作分开,但为了便于阅读。

$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>
";

请注意,在这种情况下,您必须在括号之间包装三元运算,否则连接将中断。