Ключевое слово «END» в случае переключения? - PullRequest
1 голос
/ 18 сентября 2011

, поэтому я смотрю на код другого человека, пытаясь это исправить, и я не уверен, что происходит.Я достаточно хорошо разбираюсь в программировании в целом, но есть одна строчка, которая меня отталкивает.См. Ниже:

<?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 ]

6 голосов
/ 18 сентября 2011

Это не утверждение, это способ цитирования строки.

Это называется синтаксисом heredoc, и это должен быть удобный способ заключить в кавычки многострочную строку. <<<END запускает его и END в начале строки завершает его. (END - выбор программиста, они могут использовать желаемый идентификатор).

Это объясняется здесь, в документации PHP :

Третий способ разделения строк - это синтаксис heredoc: <<<. После этого оператор, идентификатор, затем новая строка. Сама строка затем, а затем снова тот же идентификатор, чтобы закрыть цитату.

Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен следовать тем же правилам именования, что и любой другой метка в PHP: она должна содержать только буквенно-цифровые символы и подчеркивания и должны начинаться с нецифрового символа или подчеркивания.

1 голос
/ 18 сентября 2011

Это синтаксис heredoc для строк, доступный на нескольких языках.

<<<HERE
string text here
HERE
...