PHP switch语句报T_SWITCH错误及多变量判断修复咨询
修复PHP中"unexpected 'switch' (T_SWITCH)"错误及switch语句误用问题
问题根源
你遇到两个关键错误:
- 语法位置错误:把
switch语句直接嵌入到echo的字符串拼接流程中,PHP不允许在字符串连接操作里插入流程控制语句,这是触发"unexpected 'switch'"错误的直接原因。 - switch语法误用:
switch的case后应直接写要匹配的具体值,而非条件表达式(比如case $v['domainrenew']['msetupfee'] == '-1'属于错误写法)。
修复步骤
- 提前计算输出内容:把switch逻辑单独抽离,先计算好要显示的文本并存入变量,再将变量嵌入到echo的HTML代码中。
- 修正switch的case写法:让case直接对应要匹配的具体值,同时调整逻辑覆盖所需的判断场景。
修复后的完整代码
$mydata = getDomainsPrice(); foreach($mydata as $k => $v) { $is_in_gtld = get_europa($k); if($is_in_gtld == 1) { // 单独处理switch逻辑,得到要输出的内容 $renewText = ''; $msetupfee = $v['domainrenew']['msetupfee']; $qsetupfee = $v['domainrenew']['qsetupfee']; switch($msetupfee){ case '-1': $renewText = $qsetupfee; break; case '0': $renewText = "Gratis"; break; default: // 额外判断qsetupfee为0的情况 if($qsetupfee == '0'){ $renewText = "Gratis"; } else { $renewText = $msetupfee; } break; } // 输出HTML,嵌入提前计算好的$renewText echo "<tr> <td><span style=\"font-size: 16px !important;font-weight: 600;color: #1a202c;\"> $k </span></td> <td class=\"dnone\" style=\"border-top: 1px dashed #e5e9f2;font-size: 14px;font-weight: 500;color: rgba(91, 88, 88, 0.9);\"> ".($v['domainregister']['msetupfee'] == '-1' ? '2' : '1')." </td> <td style=\"border-top: 1px dashed #e5e9f2;font-size: 14px;font-weight: 500;color: rgba(91, 88, 88, 0.9);\">" .($v['domainregister']['msetupfee'] == '-1' ? $v['domainregister']['qsetupfee'] : $v['domainregister']['msetupfee']). $v['domainregister']['suffix'] . "</td> <td style=\"border-top: 1px dashed #e5e9f2;font-size: 14px;font-weight: 500;color: rgba(91, 88, 88, 0.9);\">" .($v['domainrenew']['msetupfee'] == '-1' ? $v['domainrenew']['qsetupfee'] : $v['domainrenew']['msetupfee']). $v['domainrenew']['suffix'] . "</td> <td class=\"dnone\" style=\"border-top: 1px dashed #e5e9f2;font-size: 14px;font-weight: 500;color: rgba(91, 88, 88, 0.9);\">" . $renewText . "</td></tr>"; } }
额外说明
- 原代码第4个
<td>末尾多了一个多余的.,已在修复后的代码中移除。 - 由于
qsetupfee == '0'的判断与msetupfee取值无关,将其放到default分支做额外判断,逻辑更清晰。
内容的提问来源于stack exchange,提问作者AndreiG.
相关产品推荐
相关产品推荐

