【问题标题】:Alternative syntax for switchswitch 的替代语法
【发布时间】:2012-08-25 08:53:19
【问题描述】:

嘿,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 在 /path/to/file 第 # 行

【问题讨论】:

    标签: php


    【解决方案1】:

    解决此问题的方法是将switch($variable):case 1: 放入同一PHP 代码块中:

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

    【讨论】:

    • 这与PHP documentation 中的 cmets 中的示例相同,但是否有一个可以解释的原因说明为什么它有效,但问题中的代码没有?还是只是 PHP 中的一个错误?
    • 没关系。 This answer 提供了一些解释。您基本上是在插入换行符,这是不允许直接在 switch 语句中(在 cases 之外。在 if 语句或循环中,换行符不是问题,但是switch 不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2022-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多