주석

주석 (Comments)

PHP는 'C' 스타일, 'C++' 스타일, 그리고 유닉스 셸 스타일(펄 스타일) 주석을 모두 지원해요. 코드에 설명을 붙이는 방법이 세 가지나 된다고 생각하면 되는데, 실제 사용에서 어떤 걸 골라도 무방해요. 예를 들어 볼게요.

예제 #1 주석

<?php
    echo "This is a test\n"; // This is a one-line c++ style comment
    /* This is a multi line comment
       yet another line of comment */
    echo "This is yet another test\n";
    echo "One Final Test\n"; # This is a one-line shell-style comment
?>

"한 줄" 주석 스타일(//#)은 그 줄의 끝이나, 현재 PHP 코드 블록이 끝나는 지점 중 더 먼저 닿는 곳까지만 주석으로 처리해요. 그래서 // ... ?># ... ?> 뒤에 오는 HTML 코드는 그대로 출력됩니다. ?>가 PHP 모드를 벗어나 HTML 모드로 되돌아가게 만들기 때문인데, //#는 그 동작을 막을 수 없어요.

예제 #2 한 줄 주석

<h1>This is an <?php # echo 'simple';?> example</h1>
<p>The header above will say 'This is an  example'.</p>

위 코드를 실행하면 # echo 'simple'; 부분만 주석으로 빠지고, 나머지 HTML은 그대로 화면에 나타나요.

'C' 스타일 주석(/* ... */)은 처음 만나는 */에서 끝나요. 이 점 때문에 'C' 스타일 주석은 겹쳐 쓰면(중첩하면) 안 됩니다. 큰 코드 블록을 통째로 주석 처리하려고 할 때 이 실수를 저지르기 쉬워요. 안쪽에 /*가 하나 더 있다면 바깥 주석이 거기서 끊겨 버려요.

<?php
 /*
    echo 'This is a test'; /* This comment will cause a problem */
 */
?>

위처럼 안쪽에 주석을 하나 더 넣으면, 바깥 주석이 안쪽 */에서 끝나고 그 뒤 내용이 실제 코드로 인식되며 파싱 오류가 나요. 큰 블록을 주석 처리할 땐 주석의 시작/끝 표시가 정확히 한 쌍인지 꼭 확인하고, 필요하다면 블록을 나눠서 처리하는 게 안전해요.