按预期工作,没有解析错误
<?php switch(rand(0,2)): ?>
<?php case 0: ?>
<?php break;?>
<?php case 1: ?>
<?php break;?>
<?php case 2: ?>
<?php break;?>
<?php endswitch;?>
</div>
由于切换后的新行而产生parese错误...这是非常奇怪的行为。使用PHP 5.4.24。
解析错误:在第18行的/Library/WebServer/Documents/phppos/index.php中解析错误,期待
"endswitch (T_ENDSWITCH)"' or
“case(T_CASE)”'或``default(T_DEFAULT)“'
<?php switch(rand(0,2)): ?>
<?php case 0: ?>
<?php break;?>
<?php case 1: ?>
<?php break;?>
<?php case 2: ?>
<?php break;?>
<?php endswitch;?>
答案 0 :(得分:3)
<?php...?>
之外的所有内容 - 包括空格 - 都会像echo一样输出,所以这个:
?>
<?php
相当于:
echo '
';
由于这样的回声在该位置无效 - 在交换机中但在任何情况下都不是默认块 - 因此通过以这种方式关闭PHP块来暗示它是无效的。
解决方案是不要用?&gt;关闭PHP块。除了你真正想要输出的地方。
答案 1 :(得分:0)
除非您没有向我们展示完整代码,否则使用内联PHP的此模板代码将100%无效:
<?php switch(rand(0,2)): ?>
<?php case 0: ?>
<?php break;?>
<?php case 1: ?>
<?php break;?>
<?php case 2: ?>
<?php break;?>
<?php endswitch;?>
为什么不这样做,最后添加一个default:
来捕捉你可能找不到的案例:
switch(rand(0,2)) {
case 0:
break;
case 1:
break;
case 2:
break;
default:
}