Что это за синтаксис в PHP?
$test= <<<EOF
....
EOF;
Я никогда не видел это раньше. Для чего он используется?
4 ответа
Это называется синтаксисом HEREDOC, который позволяет определять строки в несколько строк с переменной интерполяцией.
Цитирование справочной страницы:
Текст Heredoc ведет себя как строка в двойных кавычках, без двойных кавычек. Это означает, что кавычки в heredoc не нужно экранировать, но коды перехода, перечисленные выше, все еще можно использовать. Переменные раскрываются, но при выражении сложных переменных внутри heredoc необходимо соблюдать ту же осторожность, что и со строками.
(Есть еще что почитать, что я не копировал-вставлял со страницы руководства)
И, как очень быстрый и простой пример:
$a = 'World';
$string = <<<MARKER
<p>
Hello, $a!
</p>
MARKER;
echo $string;
Это даст вам такой вывод:
Hello, World!
И этот источник HTML:
<p>
Hello, World!
</p>
Действительно, это синтаксис Heredoc.
На тот случай, если вам интересно, какой интерес это может иметь по сравнению с обычными разделителями строк:
// These strings contain the same thing '"'"
$s1 = '\'"\'"';
$s2 = "'\"'\"";
$s3 = <<<EOS
'"'"
EOS
Больше не нужно избегать цитаты.
Типичный пример использования для меня - это когда мне нужно сохранить в строке некоторый HTML-код, который я скопировал / вставил.
http://www.php.net/manual/en/language.types.string.php
Цитата Третьим способом разделения строк является синтаксис heredoc: <<<. После этого оператора предоставляется идентификатор, затем новая строка. Далее следует сама строка, а затем снова тот же идентификатор, чтобы закрыть цитату.
Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен следовать тем же правилам именования, что и любая другая метка в PHP: он должен содержать только буквенно-цифровые символы и подчеркивания и должен начинаться с нецифрового символа или подчеркивания.