表行使用PHP函数的两个背景

时间:2012-01-29 08:37:06

标签: php background rows

我有这个功能为两个背景行表:

function background() {
      $bg = ''; // odd 
      $bg2 = 'F3F3F3'; // even

      if ( $i%2 == 0 )
       $bgs = "$bg";
      else
       $bgs = "$bg2";
 }

PHP代码是:

echo "<TABLE>";
$i = 0;
while ($f = $db->fetcharray( $r )) // for fetch 
{
background(); // function
echo "<tr> 
                 <td bgcolor=\"{$bgs}\">1</td>
                 <td bgcolor=\"{$bgs}\">any name</td>
                 <td bgcolor=\"{$bgs}\">any date</td>
         </tr> ";
$i++;
}
echo "</table>";

HTML OUTPUT IS:

<Table>
<TR>
<td bgcolor="">$id</td>
<td bgcolor="">$name</td>
<td bgcolor="">$date</td>
</TR>
</table>

但这不起作用。 (不显示背景颜色)有什么问题?

由于

1 个答案:

答案 0 :(得分:2)

您在background函数中定义局部范围变量,并且它们在其外部不可用。你也在内部使用来自外部范围的$i变量。所以你应该让你的函数返回值:

function background($i) {
    return $i % 2 == 0 ? '' : '#F3F3F3';
}

并使用它:

...
$bgs = background($i);
echo "<tr> 
    <td bgcolor=\"{$bgs}\">$id</td>
    <td bgcolor=\"{$bgs}\">$name</td>
    <td bgcolor=\"{$bgs}\">$date</td>
</tr> ";
...