0

如您所见,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)

如果我删除那个空间,一切都很好。

是什么原因?

4

1 回答 1

2

这是(切换)控制结构的替代语法的默认行为。如文档所述:

switch 语句和第一种情况之间的任何输出(包括空格)都将导致语法错误。

无论您在此处放置 1 个空格还是仅放置任何字符,它都会引发错误。case在 switch 语句的开头和下一段 switch 语句(a或)之间不应有任何内容defaultendswitch

于 2018-05-17T09:52:40.907 回答