PHP выражение <<< EOB - PullRequest
       28

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

17 голосов
/ 26 июня 2009

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

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

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

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

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

Ответы [ 5 ]

28 голосов
/ 26 июня 2009

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

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

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

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

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

6 голосов
/ 26 июня 2009

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

3 голосов
/ 26 июня 2009

Он называется heredoc и описан в руководстве .

2 голосов
/ 21 августа 2009

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

0 голосов
/ 28 января 2016

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

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

...