В PHP что означает «<<<»? - PullRequest
       47

В PHP что означает «<<<»?

44 голосов
/ 13 сентября 2010

Например:

$sql = <<<MySQL_QUERY

Ответы [ 6 ]

46 голосов
/ 13 сентября 2010

Это синтаксис heredoc. Вы начинаете строку heredoc, помещая <<< плюс токен по вашему выбору, и завершаете его, помещая только токен (и ничего больше!) В новую строку. Для удобства есть одно исключение: вам разрешается добавлять одну точку с запятой после конечного разделителя.

Пример:

echo <<<HEREDOC
This is a heredoc string.

Newlines and everything else is preserved.
HEREDOC;
16 голосов
/ 13 сентября 2010

Это начало строки, которая использует синтаксис HEREDOC.

Третий способ разделения строк - это синтаксис heredoc: <<<. </p>

После этого оператора указывается идентификатор, затем перевод строки.Далее следует сама строка, а затем снова тот же идентификатор, чтобы закрыть цитату.

11 голосов
/ 19 июня 2012

Это называется heredoc , и оно позволяет вам делать длинный фрагмент текста, который занимает несколько строк. Вы можете поместить туда переменные PHP, и они будут заменены значением. Слово CHART может быть чем угодно. Это просто должно быть одинаково, чтобы начать и остановить там, где начинается цитируемый текст.

Вы можете сделать то же самое, добавив несколько строк в кавычках, но большую часть времени для таких расширенных документов чище Существует также нечто, называемое nowdoc , которое похоже на строку в одинарных кавычках в PHP, но это не позволит вам использовать переменные внутри них.

9 голосов
/ 13 сентября 2010

Это PHP heredoc.

Пример:

$sql = <<<MySQL_QUERY
SELECT * 
FROM TAB 
WHERE A = 1 AND B = 2 
MySQL_QUERY;           
5 голосов
/ 19 июня 2012

Это наследство, для длинных строк вам не нужно беспокоиться о кавычках и еще много чего.Если вы заметили слово CHART, а затем есть строка с надписью CHART ;, указывающая конец строки.

При использовании этого формата важно помнить, что любая строка, которую вы используете для определения концастрока (например, CHART в данном случае), это слово должно появиться в отдельной строке, после которой должна стоять точка с запятой, и после точки с запятой в той же строке не должно быть никаких символов, даже пробел, в противном случае PHP считает, что это частьстрока.

5 голосов
/ 13 сентября 2010

Это синтаксис heredoc .

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
...