什麼,我通常是在過去所做的,爲了避免這種可能出現的問題是:
<?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或者語法高手會在它上面發揮作用,但我運行的是NetBeans,看起來不錯。
請記住,我的例子會導致空的樣式屬性時$isOverDeadline
是假的,但你可以根據需要修改(生成代碼看起來而不必應付前面加上空格清潔等)
你甚至可以複製else
:
<tr style="background-color: <?php ($isOverDeadline and e('#f00')) or e('#0ff'); ?>"></tr>
這將是真正的紅色,錯誤的青色。
來源
2012-02-17 06:15:05
Dan
什麼不行?輸出HTML是什麼樣的?您在樣式規則中缺少分號,但不應該破壞標記。 – 2012-02-17 03:28:35
所以根本沒有輸出,或者php沒有解釋,或者你知道它到底有什麼用處? – s1lence 2012-02-17 03:29:41
作爲一個建議,通常最好分配一個CSS類,而不是放入內聯樣式屬性。 'if($ isOverDeadline){echo'class =「over」'; }' – 2012-02-17 03:29:53