Инструкция по использованию 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.

Пример

<?php
echo <<<EOF
<h1>Мой первый заголовок</h1>
<p>Мой первый абзац.</p>
EOF
;
// Конечный маркер должен быть на отдельной строке, без пробелов до или после
?>

Примечание:

1. Используйте<<<EOFначальный маркер для начала, и используйтеEOFконечный маркер для завершения. Конечный маркер должен быть записан в самом начале строки, без отступов или пробелов, и в конце конечного маркера должна стоять точка с запятой.

2. Начальный маркер и конечный маркер одинаковы, например, обычно используемые заглавныеEOT、EOD、EOFдля их обозначения, но не ограничиваясь ими (можно также использовать: JSON, HTML и т. д.), при условии, что вы гарантируете, что начальный и конечный маркеры не встречаются в основном тексте.

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

Пример

<?php
$name="example";
$a= <<<EOF
        "abc"$name
        "123"
EOF
;
// Конечный маркер должен быть на отдельной строке, без пробелов до или после
echo $a;
?>
Другие расширения