Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP expression <<<EOB

Tags:

html

php

heredoc

I've been developing with PHP for some years now, and recently came across this code:

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

I've never seen this approach to print HTML, which seems to be pretty useful and less prone to some weird variable or double quote syntax error.

I've searched for some official information about this and only found a post of Rasmus talking about this.

What is a detailed explanation about this functionality and what does EOB mean? Maybe end of block?

like image 318
rogeriopvl Avatar asked Jun 26 '09 10:06

rogeriopvl


4 Answers

This is known as heredoc syntax. The documentation will tell you everything you need to know.

Essentially, however:

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.

So EOB is just what the author chose as his delimiter, not really sure what it stands for in his case but the identifier can be whatever you want.

like image 57
Paolo Bergantino Avatar answered Oct 17 '22 02:10

Paolo Bergantino


Just for the sake of completeness, Heredoc in PHP is inherited from Perl, which itself inherited it from the Bourne shell.

like image 39
wazoox Avatar answered Oct 17 '22 01:10

wazoox


It´s called heredoc and is described in the manual.

like image 42
anddoutoi Avatar answered Oct 17 '22 01:10

anddoutoi


The official term is 'here document' I believe, usually shortened to 'heredoc'.

like image 2
Brian Avatar answered Oct 17 '22 02:10

Brian