我正在尝试将以下 if 语句插入到类中,但出现意外的 T_IF 错误;
class="color_icon_filter '. if ($link_data['id']==$link_data['text']) {$active} .' "
这是不可能的还是我做错了?
我正在尝试将以下 if 语句插入到类中,但出现意外的 T_IF 错误;
class="color_icon_filter '. if ($link_data['id']==$link_data['text']) {$active} .' "
这是不可能的还是我做错了?
您应该打开 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 : '').'"';
不能将if
语句连接到字符串上。
你可以这样做:
$string = "123";
if ($bar) {
$string .= "456";
}
$string .= "789";
或这个:
if ($bar) {
$baz = "456";
} else {
$baz = "";
}
$string = "123" . $baz . "789";
您也可以使用三元运算符,但您的 if 条件(相对)较长,因此可能会使您的代码看起来更像线路噪音。
您正在尝试在 if 语句中进行连接。
我假设那条线前面有一个回声。您可以将其转换为 sprintf ( http://php.net/sprintf ) 或将 if 放在 echo 行之前,设置 $active 的值,然后仅在变量中 concat。
就个人而言,我认为 sprintf/printf 是您更好的解决方案。
您不能在赋值操作中间使用 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";