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