如您所见,在case 1:
行中打开标签之前有一个前导空格:
$var = 1;
switch ($var):
?>
<?php case 1:?> // BUGGY LINE
<?php
echo 1;
break;
case 2:
echo 2;
break;
endswitch;
?>
它产生错误:
( ! ) Parse error: syntax error, unexpected ' ', expecting endswitch (T_ENDSWITCH) or case (T_CASE) or default (T_DEFAULT)
如果我删除该空间,一切都很好。
原因是什么?
这是(开关(控制结构的替代语法的默认行为。如文档所述:
switch 语句和第一种情况之间的任何输出(包括空格(都将导致语法错误。
无论你在那里放 1 个空格还是任何字符,它都会抛出错误。switch 语句的开头和 switch 语句的下一段(case
、default
或endswitch
(之间不应该有任何内容。