我正在尝试将以下if语句插入到类中,但会出现意外的T_IF错误;
class="color_icon_filter '. if ($link_data['id']==$link_data['text']) {$active} .' "
这是不可能的,还是我做错了?
答案 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";