正确使用三元算子

时间:2013-09-10 17:13:35

标签: php if-statement mysqli echo

我正在尝试在收件箱中为未读邮件添加“新”。我不认为我可以在回声中使用if语句,并且我已经尝试过并且未能理解正确使用三元运算符。我将不胜感激任何帮助。非常感谢。

如果read_yet ='no',我想将此代码添加为另一个echo语句:

echo '<td>NEW</td>' ;

这是我当前的收件箱代码。

$sql = mysqli_query($con, "select * from messages 
WHERE deleted = 'no' AND to_user = '" . $_GET['username'] . "'
ORDER BY id DESC");

while ($row = mysqli_fetch_array($sql)){

echo '<tr>';
echo '<td><a href="profile.php?username=' ;
echo $row['from_user']  ;
echo '">';
echo '<img id="usersimage" src="images/profileimg/thumbnail_'.$row['from_user'];
echo '.jpg"</a></td>' ;
echo '<td><a href="users.php?username=' ;
echo $row['from_user']  ;
echo '">';
echo $row['from_user'];
echo "</a></td><td><a href='messageid.php?id=".$row['id']."'><font color='#b2ccdb'>" .$row['subject'] ;
echo '</a></font></td>';
echo '</tr>';

}

2 个答案:

答案 0 :(得分:2)

如果您要添加其他列,我建议您不要使用三元运算符,而只需使用if

if ($row['read_yet' == 'no') {
    echo '<td>NEW</td>';
}

但是,如果您始终输出此列并需要更改显示,则可以使用三元运算符。

echo '<td>' . ($row['read_yet' == 'no' ? 'NEW' : 'READ') . '</td>';

注意:三元组可能会产生线路噪音。因此,我更喜欢临时变量,辅助函数或传统的if

答案 1 :(得分:2)

这样的三元组:

$foo = ($bar) ? 'true result' : 'false result';

在功能上等同于:

if ($bar) {
   $foo = 'true result';
} else { 
   $foo = 'false result';
}