开关盒中的'END'关键字?

时间:2011-09-17 20:42:04

标签: php syntax case switch-statement

所以我正在看另一个人的代码试图解决它,我不确定发生了什么。我对编程有很强的了解,但有一条线让我失望。见下文:

<?php
switch ($task) {
    case "createDJ":
          echo <<<END;
          <h5>Create DJ Form</h5>
          <!-- Code for DJ form goes here. -->
          END;
          break;
    case "createShow":
         echo <<<END;
         <h5>Create Show Form</h5>
         <!-- Code for Show form goes here. -->
         END;
         break;
   //...
?>

这些END声明是怎么回事?我以前从未见过它们,另外,<<<符号是什么?

编辑:对于语法突出显示感到抱歉,不确定为什么它会变得混乱。

编辑:现在我明白为什么语法高亮显示搞砸了!哈哈

2 个答案:

答案 0 :(得分:6)

这不是一个声明,它是一种引用字符串的方式。

它被称为heredoc语法,它应该是引用多行字符串的便捷方式。 <<<END启动它,并在行的开头END结束它。 (END是程序员的选择,他们可以使用他们想要的标识符。)

这解释为here in the PHP documentation

  

分隔字符串的第三种方法是heredoc语法:<<<。在这之后   运算符,提供标识符,然后是换行符。字符串本身   跟随,然后再次使用相同的标识符来关闭报价。

     

结束标识符 必须 从该行的第一列开始。   此外,标识符必须遵循与任何其他标识符相同的命名规则   PHP中的标签:它必须只包含字母数字字符和   下划线,并且必须以非数字字符或下划线开头。

答案 1 :(得分:1)

这是字符串的heredoc语法,有几种语言版本。

<<<HERE
string text here
HERE