将if语句插入html中的css类

时间:2013-05-16 16:28:28

标签: php

我正在尝试将以下if语句插入到类中,但会出现意外的T_IF错误;

class="color_icon_filter '. if ($link_data['id']==$link_data['text']) {$active} .' "

这是不可能的,还是我做错了?

4 个答案:

答案 0 :(得分:2)

您应该打开PHP标签以解释服务器端。

class="color_icon_filter <?php if ($link_data['id']==$link_data['text']) {echo $active} ?>"

修改

或者,如果您已经使用PHP标记

echo 'class="color_icon_filter '.($link_data['id']==$link_data['text'] ? $active : '').'"';

答案 1 :(得分:0)

无法将if语句连接到字符串上。

您可以这样做:

$string = "123";
if ($bar) {
   $string .= "456";
}
$string .= "789";

或者这个:

if ($bar) {
    $baz = "456";
} else {
    $baz = "";
}
$string = "123" . $baz . "789";

您也可以使用a ternary operator,但if条件相对较长,因此可能会使代码看起来更像线路噪音。

答案 2 :(得分:0)

你试图在if语句中连接。

我假设在那条线前面有一个回音。您可以将其转换为sprintf(http://php.net/sprintf)或将if放在echo行之前,设置$ active的值,然后仅在变量中连接。

就个人而言,我认为sprintf / printf是您更好的解决方案。

答案 3 :(得分:0)

您不能在赋值操作中使用if语句,但有多种方法可以实现所需的结果:

$active = '';
if ( $link_data['id']==$link_data['text'] ) {
    $active = 'active';
}
$class = "color_icon_filter $active";

或通过三元运算符的更短路径:

$active = ( $link_data['id']==$link_data['text'] ) ? 'active' : '';
$class = "color_icon_filter $active";