php를 시작하기 위해 코드의 시작을 표현해야 하는데, 보통 <? 로 시작해서 ?> 로 끝을 표현하며 <? 와 ?> 사이에 php 코드를 넣게 됩니다.

php 표현 방법 중에도 여러 가지가 존재하며 다음 방법 중 하나를 사용할 수 있습니다.


SGML 스타일

<?
echo "내용 입니다."; 
?>


HTML 스타일

<script language="php">
 echo "내용 입니다."; 
</script>


XML 스타일

<?php
 echo "내용 입니다."; 
?>


축약형 스타일

 <?= "내용 입니다." ?>

 <?= 2+2 ?>

축약형 스타일은 php로 표현할 수 있지만 태그 전체가 그 결과 값으로 대치되므로 그다지 추천할 만한 코딩 방법은 아닙니다.

가능하다면 XML스타일을 사용하세요.

왜냐하면 php를 XML이나 XHTML에 넣을 경우 <?php ?> 스타일로 작성해야 표준과 호환되기 때문입니다.


Here Document 스타일

Heredoc스타일은 "<<<영문대문자" 로 시작해서 종료어인 세미콜론만을 가지는 "영문대문자;"로 합니다. 종료어 앞에 공백이 와서도 안됩니다. 이 스타일은 변수나 특수문자, 큰따옴표, 작은 따옴표를 혼용으로 작성 가능한 장점이 있습니다.

<?
 // ex #1
 echo <<<END
 이는 $variable 삽입을 가지는 여러 줄을
 출력하는 "here document" 구문을 사용합니다. here
 document 종료어는 줄에 세미콜론만을 가지고 있어야
 하며, 어떠한 공백도 없어야하는 점에 주의해야 합니다.
END;

 // ex #2
 $str = <<<END
 이는 $variable 삽입을 가지는 여러 줄을
 출력하는 "here document" 구문을 사용합니다. here
 document 종료어는 줄에 세미콜론만을 가지고 있어야
 하며, 어떠한 공백도 없어야하는 점에 주의해야 합니다.
END;

 echo $str;
 ?>

<?php
 $name = "My Name"; 

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

 /* 
 결과: 
 My name is "My Name". I am printing some . 
 Now, I am printing some . 
 This should not print a capital 'A': A  
 */ 
 ?>


Nowdoc 스타일

Nowdoc 스타일은 Heredoc(Here Document)스타일과 비슷합니다.

PHP 5.3부터 사용이 가능한 Nowdoc 스타일 표현은 Heredoc 스타일과 같지만 <<<'영문대문자'로 작은 따옴표를 넣어주면 nowdoc스타일이 됩니다.

다른 점이 있다면 특수문자를 치환하지 않습니다.

<?php
 $name = "My Name"; 

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

 /* 
 결과: 
 My name is "$name". I am printing some .$foo->foo.\n Now, 
I am printing some {$foo->bar[1]}.\nThis should not print a capital 'A': \x41 
 */ 
 ?>


ASP 스타일

 <% echo ("asp스타일입니다.");%>

asp (<% %>) 스타일을 사용하기 위해서는 php.ini 의 asp_tags설정이 On으로 활성화되어 있어야 가능하며 기본값은 Off입니다.

0 댓글