Приглашаем посетить
Бунин (bunin-lit.ru)

Section 4.4.  Heredoc

Previous
Table of Contents
Next

4.4. Heredoc

If you have a long string, you ought to consider using heredoc syntax. Put simply, heredoc allows you to define your own string delimiter so that you can make it something other than a double or single quote. So, for example, we could use the string EOT (end of text) for our delimiter, meaning that we can use double quotes and single quotes freely within the body of the textthe string only ends when we type EOT.

It is a little more complicated than that in practice, but not muchthe string delimiter needs to be by itself on a line, in the very first column. That is, you cannot add spacing or tabs around it. Here is a working example:

    <?php
    $mystring = <<<EOT
            This is some PHP text.
            It is completely free
            I can use "double quotes"
            and 'single quotes',
            plus $variables too, which will
            be properly converted to their values,
            you can even type EOT, as long as it
            is not alone on a line, like this:
    EOT;

    ?>

There are several things to note about heredoc and the example above:

  • You can use anything you like; EOT is just an example.

  • You need to use <<< before the delimiter to tell PHP you want to enter heredoc mode.

  • Variable substitution is enabled, which means you need to escape dollar symbols if you don't want PHP to replace variables with their values.

  • You can use your delimiter anywhere in the text, but not in the first column of a new line.

  • At the end of the string, type the delimiter with no whitespace around it, followed by a semicolon.

Without heredoc syntax, complicated string assignments can become very messy.


Previous
Table of Contents
Next