Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is <<<_END?

Tags:

php

heredoc

I'm new to PHP and don't understand what the point of <<<_END is. Could someone please explain when this should be used? I've looked at various examples and they all seem to have HTML embedded within them. But I can use HTML without the <<<_END tags, so why should I use them? I tried searching the manual, but I keep finding the end() method for arrays.

like image 813
Skoder Avatar asked Jan 13 '11 01:01

Skoder


4 Answers

It's the start of a heredoc. you can do:

$data = <<< _END

You can write anything you want in between the start and end

_END;

_END can be just about anything. You could put EOF or STUFF. as long as you use the same thing at the start and the finish.

like image 161
Mitch Dempsey Avatar answered Oct 16 '22 13:10

Mitch Dempsey


This signifies the beginning of a heredoc (a multi-line string that allows you to use quotation marks in the middle, unescaped) that ends when you encounter the _END

It can be useful to define HTML in one of these if the goal is to assign it to a variable or pass it to a function rather than printing it to the web server immediately.

like image 25
Ken Bloom Avatar answered Oct 16 '22 11:10

Ken Bloom


That syntax is called heredoc

<<<_END
some text
_END

Basically, it's a way of writing a string without worrying about escaping quotes and so on.

As you've mentioned, it doesn't really provide a lot of benefit over other string formats - although, it does mean you can write a block of HTML without escaping out of PHP with ?>

It also isn't too popular as its use generally goes against the practice of seperating content from logic by embedding the content in the middle of your script.

like image 2
HorusKol Avatar answered Oct 16 '22 13:10

HorusKol


Does this help? http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

It allows you to echo out a block of text (just the same as with echo "words";), but without using the beginning/ending quotes, and without having to escape contained double quotes. Read the manual link above for more detail.

like image 1
JakeParis Avatar answered Oct 16 '22 11:10

JakeParis