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