웹마스터 팁

일단 여기까지는 올려야 뭐라도 조금 남겠죠? 안 그랬다가는 이넘은 준비물만 올려주고 끝이냣! 그럴까봐... -_-;;

PHP 매뉴얼 파일을 더블클릭하시면 매뉴얼이 뜹니다.
여기에서 Language Reference 의 Basic Syntax 기본 문법 부분을 보도록 합니다.

Escaping from HTML이라는 부분이 있는데, 말 그대로 "HTML을 벗어나서" PHP 코드를 실행하는 부분입니다. PHP를 실행하는 방법은 여러가지가 있습니다.

1. <?php ~~~ ?>
2. <? ~~~ ?>
3. <% ~~~ %>

사실 3번은 ASP를 시작하는 방법이지만, php.ini 의 옵션 중 asp_tags 옵션이 On 으로 되어있다면 사용가능합니다. 2번이 사용가능한 것도, php.ini 의 옵션 중 short_open_tags 옵션이 On으로 되어있기 때문입니다. 그럼 이쯤에서, php.ini 가 어디에 있는지 궁금해질만도 한데, 그걸 찾는 것은 여러분의 몫입니다. 대게는 질문 게시판에서 php.ini 로 검색해보시면 알 수 있습니다. ^^

추가 ASP란 WindowsNT 계열의 서버에서 쓰이는 웹 스크립트입니다. Active Server Pages 의 약자이며, 문자 그대로 웹페이지를 능동적으로 생성하기 위한 Server Side Script(서버에서 실행되는 스크립트)입니다. 별로 중요한 것은 아니고, 그냥 저런 식으로 사용할 수도 있구나... 하는 것만 아시면 됩니다. ^^ - 리야리야님이 물어보신 내용입니다.

보통은 2번과 같은 스타일로 사용하고 아울러서 <?=$expression?>과 같은 식으로 값을 출력하지만, 이 방법은 권장하는 방법이 아닙니다. 왜냐하면 XML, XHTML 에서도 <? ~~~ ?>와 같은 식으로 시작과 끝을 맺기 때문에 PHP에서건 브라우저에서건 문법적인 오류를 불러일으킬 수 있습니다. 물론, XML이나 XHTML이 일반적으로 쓰이는 것은 아니기 때문에 보통때는 크게 상관없을 지도 모릅니다. 하지만, 저런 사실조차 모르고 있는 것보다는 알고 코딩을 하시는게 나중에 오류를 찾아낼때도 도움이 되겠죠?


Instruction separation구문을 구분지어주는 것에 대한 것인데요, 즉, 명령 한 문장이 어떻게 끝나는가에 대한거죠. 보통은 echo "This is a test"; 와 같은 식으로 세미콜론(;)을 끝에 붙여서 한 문장을 마칩니다. 세미콜론만 제대로 찍어준다면 몇 개의 명령어를 한 줄에 써도 관계는 없습니다. 일부에서는 PHP가 인터프리터(소스를 별도의 해석기에서 해석해주는 언어) 언어이기 때문에 한줄에 붙여줄수록 약간의 속도향상이 있다고 말하며, 맞는 말이기도 합니다. 하지만, 소스를 지저분하게 한줄에 붙여서 극히 적은 속도 향상을 얻기보다는 보기 편하게 정리하는 것이 더 도움이 될 것입니다.

<?php
echo "This is a test";
?>

와 같은 문장은 당연히,

<?php echo "This is a test"; ?>

로 바꿀 수 있습니다. 이 때, 문장의 끝에 붙은 세미콜론은 생략가능합니다. 이유는 PHP문의 끝을 의미하는 ?>태그가 세미콜론을 대신할 수 있기 때문입니다. 단 한번이죠. ^^;; 해보신 분들은 알겠지만 세미콜론을 빼먹으면 문법적인 에러가 납니다. 다음 문장을 실행해보세요.

<?php
echo "This is a test"
echo "It's a test";
?>

분명히 문법적인 에러가 발생하는 부분은 2번째 줄입니다. 그렇지만 저 PHP문을 실행해보면,

Parse error: parse error, unexpected T_ECHO, expecting ',' or ';' in c:usrwwwtest.php on line 3

와 같은 에러문을 만날 수 있고 특히 [line 3] 이라는 부분이 눈에 띄이게 됩니다. 분명히 에러가 난 부분은 2번째 줄인데, 이상하게 에러문에는 3번 라인이라고 나오죠? 우선 에러문을 읽어보겠습니다. PHP를 혼자 공부할 때 가장 중요한 것은 뭐니뭐니해도 에러문을 제대로 읽을 줄 알아야 한다는 것입니다.
Parse error : 해석 오류 입니다. 위에서 PHP가 인터프리터 언어라고 말씀드렸습니다. PHP 소스만으로는 아무런 효과를 발휘하지 못하며 중간에 소스를 해석해서 실행시켜주는 모듈이 있어야 하는데 그래서 parse 라는 단어를 사용하는 것입니다. 실행 오류가 아니라 해석 오류죠. ^^ 그 다음은, echo 함수에서 오류가 났는데, "," 이것이나 ";" 같다...라고 말하고 있습니다. 주의할 점은 세미콜론을 빼먹은 오류의 경우 오류가 난 다음 줄의 에러번호를 발생시킨다는 점입니다. 이 점을 잘 기억하고 매뉴얼 다음 장을 봅니다.


Comments - 주석입니다. 제가 C언어를 배울때 과제를 내주던 교수님이 늘 이런 조건을 붙이셨습니다.
"소스 전체에서 주석문이 50% 이상일 것"
그 때는 그것이 정말 귀찮았지만, 지금 생각해보면 주석문을 단다는 것은 그만큼 소스를 잘 이해하고 있다는 말이기도 하며, 나중에 소스가 길어질 경우에도 쉽게 그 소스를 이해하고 유지보수할 수 있다는 장점이 있습니다. 배우는 입장에서는 가능한한 주석을 많이 다는 것이 좋습니다. 기회가 있다면 유명한 오픈 소스 프로그램들의 소스를 보시기 바랍니다. 특히 외국계열의 유명 소스들은 주석문이 참 길~~~게 달아져있습니다. 이는 자신들뿐만 아니라 다른 사람들도 소스를 쉽게 이해할 수 있도록 한 배려라고 하겠습니다.

PHP의 주석은 세가지 형태입니다.

1. // 현재부분부터 줄 끝까지. 한줄 코멘트
2. # 1번과 마찬가지
3. /* ~~~ */ 여러줄에 걸쳐도 관계없음.



### 생각해볼 것.
php.ini는 어디에 존재하는가?