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。

有没有更容易/更好的方法来实现这一目标?

+0

if($ row ['play'] == 1){ echo“

是”; } else if($ row ['play'] == 0){ echo“ No”; } – hd1 2013-04-11 14:50:52
+2

'bgcolor'属性已被弃用,请改用CSS。顺便说一句,这个问题怎么会得到提升! – moonwave99 2013-04-11 14:52:18

你可以这样做:

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

+1我相信它比'if else'树更有效率。 – christopher 2013-04-11 14:51:38

+0

太棒了!谢谢:) – 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>"; 
+0

如果你这样做,你也可以在数组中保留'green'和'yellow',然后删除if。 – h2ooooooo 2013-04-11 14:54:04

+0

当然,我也在回答。 – 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>";