/ PHP / 상세보기

HERE docs 문법

👁 조회 3,199 📅 2008-07-30

문자열을 구분하는 다른 방법은 HERE docs 문법("<<<")을 사용하는 것입니다.
<<< 이후에 식별자가 와야 하고 그 다음에 문자열, 그 다음에 인용을 닫는 어떤 식별자가 와야 합니다.

닫기 식별자는 그 줄의 첫번째 칼럼에서 시작되어야 합니다.

또한 식별자는 PHP의 다른 라벨과 같은 명명규칙을 따라야 합니다.
오직 알파벳 숫자와 밑줄을 포함하고 숫자가 아닌 문자나 밑줄로 시작되어야 합니다.

닫기 식별자를 갖는 줄은 가능한 세미콜론(;)을 제외하고 다른 문자를 포함하지 않는다는 것에 주의해야합니다.
HERE docs 문법에서 텍스트는 큰따옴표가 없지만 큰따옴표로 둘러싸인 문자열처럼 동작합니다.


( HERE docs 문법 사용 예 )


$str = << Example of string
spanning multiple lines
using heredoc syntax.
EOD;


class foo
{
 var $foo;
 var $bar;


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


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


echo << 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;
?>


※ 주의점

HERE docs 안에 php 변수를 한글과 붙여서 출력할때 에러가 발생할 수 있습니다.
에러 --> $year년 $month월

이때는 중괄호로 묶어주면 올바로 출력됩니다.

<?
$year = date('Y');
$month = date('m');


$str = <<<EOD
<span style="font:14pt 돋음체;color:#FF9900;"><b> {$year}년 {$month}월 </b></span>
EOD;
echo $str;
?>