Выражение PHP <<< EOB - программирование

Выражение PHP <<< EOB

Я развиваюсь с PHP уже несколько лет и недавно наткнулся на этот код:

<?php
    echo <<<EOB
        <html>
        <head>
            <title>My title</title>
        </head>
        ...
    EOB;
?>

Я никогда не видел такой подход для печати HTML, который, кажется, очень полезен и менее склонен к какой-то странной ошибке синтаксиса переменной или двойной цитаты.

Я искал какую-то официальную информацию об этом и только нашел сообщение о том, что Rasmus говорит об этом.

Что такое подробное объяснение этой функции и что означает EOB? Может быть, конец блока?

4b9b3361

Ответ 1

Это называется heredoc синтаксис. Документация расскажет вам все, что вам нужно знать.

По существу, однако:

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

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

Итак, EOB - это то, что автор выбрал в качестве своего разделителя, не совсем уверен, что он обозначает в своем случае, но идентификатор может быть тем, что вы хотите.

Ответ 2

Просто для полноты, Heredoc в PHP наследуется от Perl, который сам унаследовал его от Bourne shell.

Ответ 3

Он называется heredoc и описан в manual.

Ответ 4

Официальным термином является "здесь документ", я считаю, обычно сокращается до "heredoc".

Ответ 5

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

Более полезное объяснение можно найти на собственном веб-сайте PHP: http://php.net/manual/en/language.types.string.php