Вопрос по html, php – PHP выражение <<< EOB

17

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

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

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

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

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

Что странного в этом коде, так это то, что он мог просто выйти из режима PHP и выполнить то же самое. jmucchiello

Ваш Ответ

5   ответов
28

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

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

A third way to delimit strings is the heredoc syntax: <<<. After this operator, an identifier is provided, then a newline. The string itself follows, and then the same identifier again to close the quotation.

The closing identifier must begin in the first column of the line. Also, the identifier must follow the same naming rules as any other label in PHP: it must contain only alphanumeric characters and underscores, and must start with a non-digit character or underscore.

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
3
2

обычно сокращается до «heredoc».

Error: User Rate Limit Exceeded
6

Perlкоторый сам унаследовал это отОболочка Борна.

0

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

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

Похожие вопросы