if,else if echo语句
如果值为1,则单元格bg为绿色,单元格中为#1 如果值为0,则单元格bg为黄色,其中为0。if,else if echo语句
我想显示“是”,而不是“1”和“否”,而不是“0”
if($row['play'] == 1){
echo "<td bgcolor='green'>" . $row['play'] . "</td>";
}
else if ($row['play'] == 0){
echo "<td bgcolor='yellow'>" . $row['play'] . "</td>";
}
的值来自一个复选框(1)和一个隐藏字段(0)的MySQL字段是BOOL。
有没有更容易/更好的方法来实现这一目标?
你可以这样做:
if($row['play'] == 1){
echo "<td bgcolor='green'>Yes</td>";
}
else if ($row['play'] == 0){
echo "<td bgcolor='yellow'>No</td>";
}
但我要说的是switch/case
的是更舒适:
switch($row['play']) {
case 1:
echo "<td bgcolor='green'>Yes</td>";
break;
default:
echo "<td bgcolor='yellow'>No</td>";
break;
}
+1我相信它比'if else'树更有效率。 – christopher 2013-04-11 14:51:38
太棒了!谢谢:) – bech64 2013-04-11 15:15:32
可以将其转换为int,然后做一个条件,如果它是大于零:
if((int)$row['play'] > 0) {
echo "<td bgcolor='green'>Yes</td>";
}
else {
echo "<td bgcolor='yellow'>No</td>";
}
这样,play
可以是1,2,3,4,5 ......等等。
$words = array(
0 => "No",
1 => "Yes"
) ;
if($row['play'] == 1){
echo "<td bgcolor='green'>" . $words[(int)$row['play']] . "</td>";
} else if ($row['play'] == 0){
echo "<td bgcolor='yellow'>" . $words[(int)$row['play']] . "</td>";
}
甚至更好:
$map = array(
0 => array("word"=>"No", "color"=>"yellow"),
0 => array("word"=>"Yes", "color"=>"green"),
) ;
$current = (int) $row['play'] ;
echo "<td bgcolor='{$map[$current]['color']}'>{$map[$current]['word']}</td>";
如果你这样做,你也可以在数组中保留'green'和'yellow',然后删除if。 – h2ooooooo 2013-04-11 14:54:04
当然,我也在回答。 – vikingmaster 2013-04-11 14:56:07
尝试这个
if($row['play'] == 1)
{
echo "<td bgcolor='green'>Yes</td>";
}
else if ($row['play'] == 0)
{
echo "<td bgcolor='yellow'>No</td>";
}
这样的事情会做到这一点 -
echo "<td bgcolor='" . $row['play'] == 1 ? "green" : "yellow" . "'> . $row['play'] == 1 ? "No" : "Yes" . "</td>";
您可以通过削减回声声明这样做:
if($row['play'] == 1){
$color = 'green';
$text = 'yes';
}
else
{
$color = 'red';
$text = 'no';
}
// Assign the color and text values based on the input.
echo "<td bgcolor=$color>$data</td>";
if($ row ['play'] == 1){ echo“
'bgcolor'属性已被弃用,请改用CSS。顺便说一句,这个问题怎么会得到提升! – moonwave99 2013-04-11 14:52:18