Что это за синтаксис в PHP? - PullRequest
4 голосов
/ 25 февраля 2010
$test= <<<EOF

....

EOF;

Я никогда раньше этого не видел. Для чего он используется?

Ответы [ 4 ]

13 голосов
/ 25 февраля 2010

Это называется Синтаксис HEREDOC , который является способом определения строк в несколько строк с переменной интерполяцией.


Цитирование справочной страницы:

Текст Heredoc ведет себя как строка в двойных кавычках, без двойные кавычки. Это означает, что цитаты в наследстве не нужно быть сбежал, но коды выхода указаны выше все еще можно использовать. Переменные расширен, но такая же забота должна быть берется при выражении комплекса переменные внутри heredoc как с строки.

(есть еще что прочитать, я не копировал-вставлял со страницы руководства)


И, как очень быстрый и простой пример:

$a = 'World';
$string = <<<MARKER
<p>
  Hello, $a!
</p>
MARKER;
echo $string;

Это даст вам такой вывод:

Hello, World!

И этот источник HTML:

<p>
  Hello, World!
</p>
0 голосов
/ 25 февраля 2010

Действительно, это синтаксис Heredoc .

На всякий случай, если вам интересно, какой интерес он может иметь по отношению к обычным разделителям строк:

// These strings contain the same thing '"'"
$s1 = '\'"\'"';
$s2 = "'\"'\"";
$s3 = <<<EOS
'"'"
EOS

Больше нет кавычек.
Типичный случай использования для меня - это когда мне нужно сохранить в строке некоторый код HTML, который я скопировал / вставил.

0 голосов
/ 25 февраля 2010

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

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

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

0 голосов
/ 25 февраля 2010

Это было бы Heredoc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...