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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在switch case语句中php开启标记之前的领先空间相关的知识,希望对你有一定的参考价值。

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

是什么原因?

答案

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

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

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

以上是关于在switch case语句中php开启标记之前的领先空间的主要内容,如果未能解决你的问题,请参考以下文章

switch case的用法

php switch case 问题

PHP switch case 默认

这个PHP流程判断switch语句哪里出错了?为啥不执行default后面的语句

switch case语句中能否作用在String,long上

用Java中的Switch语句编写出成绩的等级划分!