<tr <?php if($isOverDeadline)
{
echo ' style="background-color:#CC3300"';
}
?>><td width="250" <?php
if($isOverDeadline)
{
echo ' style="color:#fff"';
}
?>><?php echo $something; ?> </td></tr>
我发现tr和td中的嵌套php块不起作用。有人能告诉我出了什么问题吗?
答案 0 :(得分:1)
* 检查isOverDeadline是true还是false *
<?php $isOverDeadline = true; ?>
<tr <?php if($isOverDeadline)
{
echo ' style="background-color:#CC3300"';
}
?>><td width="250" <?php
if($isOverDeadline)
{
echo ' style="color:#fff"';
}
?>><?php echo $something; ?> </td></tr>
答案 1 :(得分:1)
我过去通常做的是为了避免这些可能的问题:
<?php
// This is merely a convenience method for short circuiting,
// you could use print() as it always returns 1, however e()
// is just shorter.
function e($arg)
{
echo $arg;
return true;
}
$isOverDeadline = true;
$something = "Hello world";
?>
<tr style="<?php $isOverDeadline and e('background-color: #cc3300;'); ?>">
<td style="<?php $isOverDeadline and e('background-color: #ffffff;'); ?>"
width="250"><?php e($something); ?></td>
</tr>
这使用short circuit evaluation来最小化内联PHP。正如你所看到的,一些IDE或语法hilighter会对它进行barf,但是我运行NetBeans并且看起来不错。
请记住,当$isOverDeadline
为false时,我的示例将导致空样式属性,但您可以根据需要进行修改(生成代码看起来更干净,无需处理前置空格等。< / em>的)
您甚至可以复制else
:
<tr style="background-color: <?php ($isOverDeadline and e('#f00')) or e('#0ff'); ?>"></tr>
其中红色为真,青色为假。
答案 2 :(得分:0)
你应该像这样逃避双引号 echo'style = \“background-color:#CC3300 \”';