替代着色的问题

时间:2011-08-26 11:10:37

标签: php

我在替换表行时遇到问题。

print '<tr '.if(childnum%2==0){.'bgcolor="#CCFFCC">'.} else {.'bgcolor="#990000">'};

这会导致以下错误:“Syntax Error, unexpected T_IF in /home/ on line [...]

5 个答案:

答案 0 :(得分:4)

print '<tr '.(($childnum % 2 == 0) ? 'bgcolor="#CCFFCC">' : 'bgcolor="#990000">');

更好

可能childnum%2应为$childnum % 2

答案 1 :(得分:1)

不要以这种方式编写代码,几周后你就不会理解它了,不管怎样,TRUST ME

if($childnum%2==0){
    $mybgcolor = '#CCFFCC';
} else {
    $mybgcolor = '#990000';
}
print '<tr bgcolor="'.$mybgcolor.'">';

更简单易读

答案 2 :(得分:0)

在发出print语句之前,尝试使用if/else逻辑将字符串变量设置为所需的背景颜色。然后,在打印时将该变量包含为bgcolor值。

答案 3 :(得分:0)

if ($childnum % 2 == 0) {
     $color = '#CCFFCC';
} else {
     $color = '#990000';
}

print '<tr bgcolor="'.$color.'">';

不要混合条件语句(如if)和语言结构(如print)或函数。

并牢记可读性。请记住:您必须维护该代码。

答案 4 :(得分:0)

请改为尝试:

$tr = '';

if(($childnum % 2) == 0) $tr = '<tr bgcolor="#CCFFCC">';
else $tr = '<tr bgcolor="#990000">';

print $tr;

我通常采取的解决问题的方法是:

  • 将代码分解为不同的段
  • 让它按我的意愿工作
  • 重构它