PHP表格行按条件引入Font Awesome类遇语法错误求助
解决PHP语法错误:unexpected 'if' (T_IF)
错误根源是你在echo的字符串拼接过程中直接插入了完整的if语句块,PHP不支持这种写法,必须先处理好条件判断的结果,再参与字符串拼接,或者用三元运算符简化逻辑。
修正方案1:使用三元运算符
适合这种简单的条件判断场景,一行就能完成逻辑:
foreach($result as $row) { echo '<tr> <td>'. ($row["FLAG"] == "1" ? '<i class="fa-sharp fa-solid fa-flag-pennant"></i>' : '') .'</td> <td>'.$row["CREATEDDATE"].'</td> <td>'.$row["ID"].'</td> <td>'.$row["CUSTOMER_NAME"].'</td> <td>'.$row["VEHICLENO"].'</td> <td>'.$row["SERIAL"].'</td> </tr>'; }
修正方案2:拆分逻辑,先处理条件内容
如果后续需要添加更多分支逻辑,这种写法更清晰易维护:
foreach($result as $row) { // 先处理FLAG对应的图标内容 $flagIcon = ''; if($row["FLAG"] == "1") { $flagIcon = '<i class="fa-sharp fa-solid fa-flag-pennant"></i>'; } // 再输出完整的HTML行 echo '<tr> <td>'.$flagIcon.'</td> <td>'.$row["CREATEDDATE"].'</td> <td>'.$row["ID"].'</td> <td>'.$row["CUSTOMER_NAME"].'</td> <td>'.$row["VEHICLENO"].'</td> <td>'.$row["SERIAL"].'</td> </tr>'; }
补充说明
- 三元运算符格式为
条件 ? 满足条件的内容 : 不满足条件的内容,注意要用括号把整个三元表达式包裹,避免拼接时出现优先级错误。 - 拆分逻辑的方式更适合后续扩展,比如需要根据FLAG的不同值显示不同图标时,直接在if块里添加else分支即可。
内容的提问来源于stack exchange,提问作者Kristy Green
相关产品推荐
相关产品推荐

