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

Php 在echo语句中添加三元运算符,php,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>"; 本质上,在IF条件下将颜色变成红色…现在除了代码之外,这不

我在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>";

本质上,在IF条件下将颜色变成红色…现在除了代码之外,这不会产生任何结果…有人知道这应该如何恰当地进入echo语句吗?谢谢这不是一个有效的PHP语句:

style="color:red"
你可能想把整件事变成一根绳子:

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

我不会在回声声明中加入三元。只需使用一个变量

$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>";
$liStyle=($benchmark>$thisUser)?'style=“color:red”:“”;
echo“
  • id>$this->course\u name
  • ”;
    我建议您将代码分块剪切,以使其更具可读性(利用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>
    ";
    
    $color=$benchmark->$thisUser?“#"中交":"红",;
    回声“
    
  • $this->course\u name
  • ";
    如果在echo中包含三元操作,它也可以工作,但看起来不那么可读

    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>
    ";
    
    echo”
    
  • $this->course\u name
  • ";

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

    对……谢谢……这是我写下它时的错误。很高兴提供帮助。那么你能考虑接受我的答案吗?
    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>
    ";