Инструкция по использованию PHP EOF (heredoc)
PHP EOF (heredoc) — это метод определения строки в командных оболочках (таких как sh, csh, ksh, bash, PowerShell и zsh) и языках программирования (таких как Perl, PHP, Python и Ruby).
Обзор использования:
- 1. После него должна стоять точка с запятой, иначе компиляция завершится ошибкой.
- 2. EOFВместо него можно использовать любые другие символы, только убедитесь, что конечный идентификатор совпадает с начальным идентификатором.
- 3. Конечный идентификатор должен быть размещён отдельно в начале строки (т. е. он должен начинаться с начала строки, без пробелов или символов до или после него).
- 4. Начальный идентификатор может быть без кавычек или заключён в одинарные или двойные кавычки. Без кавычек эквивалентно двойным кавычкам: интерпретируются встроенные переменные и escape-символы. В одинарных кавычках встроенные переменные и escape-символы не интерпретируются.
- 5. Когда в содержимом требуются вложенные кавычки (одинарные или двойные), не нужно добавлять экранирующие символы; одинарные и двойные кавычки экранируются сами. Это похоже на использование q и qq.
Пример
echo <<<EOF
<h1>Мой первый заголовок</h1>
<p>Мой первый абзац.</p>
EOF;
// Конечный маркер должен быть на отдельной строке, без пробелов до или после
?>
Примечание:
1. Используйте<<<EOFначальный маркер для начала, и используйтеEOFконечный маркер для завершения. Конечный маркер должен быть записан в самом начале строки, без отступов или пробелов, и в конце конечного маркера должна стоять точка с запятой.
2. Начальный маркер и конечный маркер одинаковы, например, обычно используемые заглавныеEOT、EOD、EOFдля их обозначения, но не ограничиваясь ими (можно также использовать: JSON, HTML и т. д.), при условии, что вы гарантируете, что начальный и конечный маркеры не встречаются в основном тексте.
3. Переменные между начальным и конечным маркерами могут быть обработаны нормально, но функции не могут. В heredoc переменным не нужно использовать символ конкатенации.или,для объединения, как показано ниже:
Пример
$name="example";
$a= <<<EOF
"abc"$name
"123"
EOF;
// Конечный маркер должен быть на отдельной строке, без пробелов до или после
echo $a;
?>