Php 开关的替代语法

Php 开关的替代语法,php,Php,嘿,PHP中的switch语句有另一种语法,但这段代码不起作用: <div> <?php switch($variable): ?> <?php case 1: ?> <div> Newspage </div> <?php break;?> <?php case 2: ?> </div> Forum <div> <?php break;?> <?php endswitch

嘿,PHP中的switch语句有另一种语法,但这段代码不起作用:

<div>
<?php switch($variable): ?>
<?php case 1: ?>
<div>
Newspage
</div>
<?php break;?>
<?php case 2: ?>
</div>
Forum
<div>
<?php break;?>
<?php endswitch;?>
</div>

新闻页
论坛
分析错误:语法错误,意外的T_INLINE_HTML,应为 T_ENDSWITCH或T_CASE或T_DEFAULT in/path/to/file on line#


此问题的解决方案是将带有
案例1:
开关($variable):
放入相同的PHP代码块中:

<div>
<?php switch($variable): 
case 1: ?>
<div>
Newspage
</div>
<?php break;?>
<?php case 2: ?>
</div>
Forum
<div>
<?php break;?>
<?php endswitch;?>
</div>

新闻页
论坛

这与中的注释中的示例相同,但是否有可以解释的原因来解释为什么这样做有效,但问题中的代码没有?或者它只是PHP中的一个bug?没关系。提供了一些解释。基本上是插入换行符,这在
switch
语句中是不允许的(在
case
s之外)。在
if
语句或循环中,换行符不是问题,但
switch
是不同的。