在switch case语句中php开启标记之前的领先空间

问题描述 投票:0回答:1

正如您所看到的,在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)

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

是什么原因?

php switch-statement php-parse-error
1个回答
2
投票

这是(switch)控制结构的替代语法的默认行为。正如documentation所述:

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

无论你在那里放置1个空格还是只放任何字符都会引发错误。在switch语句的开头和switch语句的下一段(casedefaultendswitch)之间不应该有任何东西。

© www.soinside.com 2019 - 2024. All rights reserved.