PHP 매뉴얼 링크 : http://www.php.net/manual/en/language.types.string.php

Heredoc
PHP 에서 문자열로 지정하는 방법중에 하나가  히어도큐먼트 구문 ("<<<") 이 있다.
어떤 ID(식별자) ( 와  그뒤로 이어지는 개행문자 ) 를 <<<  의 뒤에 지정하고  문자열을 넣은후 같은 ID(식별자) 를  닫는 의미 지정한다.
 종단 ID(식별자) 는 해당 행의 맨처음 컬럼(열)에서 시작해야한다. 사용하는 식별자는 PHP 의 다른 라벨과 같이 명명규칙을 따라야 한다. 즉 , 알파벳, 숫자 및 언더스코어를 사용하며 , 숫자가 아닌 문자 또는 언더스코어로 시작해야한다.



경고 :
종단 식별자가 있는 행은 세미콜론(;) 이외의 다른 문자를 포함해서는 안된다는 사실에 주의할것.
특히 식별자는 인덴트해서는 안되며 , 세미콜론 앞에 공백 및 탭을 넣어서는 안된다.
종단 식별자의 앞의 맨처음 문자는 사용하는 운영체제에서 정의한 개행문자이어야 한다.  예를 들어 Macintosh 에서는 \r  이며 , 맨 마지막 구분문자 ( 대개 그 뒤로 세미콜론이 옴)의 뒤에도 개행문자를 넣어야 할 필요가 있다. 

이 규칙이 지켜지지 않으면  종단 식별자로 인식이 되지 않으며, PHP 는 계속해서 종단식별자를 찾게 된다.  적당한 종단 식별자를 찾을 수 없으면 스크립트의 맨 마지막에서 파싱에러가 발생한다.

히어도큐먼트구문을  클래스 멤버에 초기화해서 사용할 수 없다. nowdoc 을 사용할것.


틀린 예.

<?php
class foo
{
    public
$bar
= <<<EOT
bar
EOT;
}
?>


히어도큐먼트는 더블쿼트를 사용하지않지만 더블쿼트로 싸인 문자열과 똑같이 동작하며 에스케이프 코드를 사용할 수도 있다.

히어도큐먼트 사용예
<?php
$str
= <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

/* More complex example, with variables. */
class foo
{
    var
$foo;
    var
$bar;

    function
foo()
    {
       
$this->foo = 'Foo';
       
$this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'MyName';

echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some
{$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>

출력결과
My name is "MyName". I am printing some Foo.
Now, I am printing some Bar2.
This should print a capital 'A': A


히어도큐먼트는 PHP 4 에서 추가됨.