我得到Parse error: syntax error, unexpected '', expecting endswitch (T_ENDSWITCH) or case (T_CASE) or default (T_DEFAULT) in ...以下代码
<?php switch ($oEx->getCode()): ?>
<?php default: ?>
Stuff
<?php endswitch; ?>
Run Code Online (Sandbox Code Playgroud)
虽然这没关系
<?php switch ($oEx->getCode()):
endswitch; ?>
Run Code Online (Sandbox Code Playgroud)
为什么?解决方法是在结束标记之前添加如下所示的虚拟案例,但我不明白为什么这应该是必要的.
<?php switch ($oEx->getCode()): case -9999: break; ?>
<?php default: ?>
Stuff
<?php endswitch; ?>
Run Code Online (Sandbox Code Playgroud)
Jef*_*ert 11
参见手册:
警告 switch语句和第一种情况之间的任何输出(包括空格)都将导致语法错误.例如,这是无效的:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
Run Code Online (Sandbox Code Playgroud)
虽然这是有效的,因为switch语句之后的尾随换行符被视为结束的一部分?>因此在开关和case之间没有输出任何内容:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
Run Code Online (Sandbox Code Playgroud)
问题不是结束PHP标记,而是空格.我想如果你修改了原始代码如下,它应该摆脱你的语法错误:
<?php switch ($oEx->getCode()): ?>
<?php default: ?>
Stuff
<?php endswitch; ?>
Run Code Online (Sandbox Code Playgroud)
请注意,唯一的更改是删除switch语句和default案例之间的换行符.