1

作品:

    <?php switch ($student[$use_grade]) {
        case "K": ?>
            <?php echo 'works'; ?>
        <?php break; ?>
    <?php } ?>

不起作用:

    <?php switch ($student[$use_grade]) { ?>
        <?php case "K": ?>
            <?php echo 'works'; ?>
        <?php break; ?>
    <?php } ?>

解析错误:语法错误,意外的 T_INLINE_HTML,需要 T_CASE 或 T_DEFAULT 或 '}'

4

2 回答 2

2

来自 PHP 的评论文档:

在switch语句的情况下,可以这样理解;在任何可以有 echo 语句的地方(if 块、switch 的 case 等等),都可以有原始 HTML。在 PHP 中,这基本上就是这样处理的——就像一个 echo 语句。

但是,在 switch 和 case 之间,你不能回显任何东西。通过将 switch 和 case 放在两个单独的 PHP 块中,并在它们之间回显原始 HTML 换行符,PHP 基本上必须尝试找到该语句的位置。它不可能在那里,因此很困难。

http://www.php.net/manual/en/control-structures.alternative-syntax.php

于 2015-08-10T22:54:58.480 回答
2

内联 html(and 之间的所有内容?>)在语法上与 operator 相同,并且and first<?php之间不允许有运算符。switchcase

来自 PHP 文档:

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

于 2015-08-10T22:56:00.440 回答