<?php
echo "안녕하세요.";
?>
이제 코드를 살펴봅시다.
PHP 프로그램은 원칙적으로는 <?php 로 시작해서 ?> 으로 끝나도록 되어있습니다. 하지만 한 파일에서도 여러번 시작하고 여러번 종료할 수 있도록 되어있기 때문에(나중에 살펴봅니다), 편의를 위해서 조금 더 짧은 코드만으로도 같은 역할을 하도록 할 수 있습니다. 그래서, <?와 ?>도 PHP의 시작과 끝을 정해줄 수 있습니다. 따라서 위 코드는 다음과 같이 써도 (대부분의 경우에는) 올바른 코드가 됩니다.
<?
echo "안녕하세요.";
?>
주의할점은 이 짧은 태그가 "모든 서버" 에서 사용되는 것은 아니라는 겁니다. 기본값이 이 태그를 허용하도록 되어있어서 거의 전부라 해도 좋을만큼 많은 서버들이 이 설정을 지원하지만, 일부 서버에서는 실행이 안될 수도 있습니다. PHP환경설정하는 법도 나중에 다룰 생각입니다.
따라서, 전문 프로그래머를 생각하고 있는 사람이라면 <?php과 ?> 를 사용하도록 해야합니다. 언제 어떤 환경에서 자신의 프로그램이 사용될지 모르는 일이니까요. 항상 최악의 상황을 가정하는 것이 중요하죠.
그 다음을 봅시다.
echo "안녕하세요.";
이 문장은 세가지로 분리해서 생각할 수 있습니다. 첫번째가 echo 인데 이것은 명령어 혹은 함수라고 부릅니다. 이것의 역할은 어떤 행동을 하도록 하는데 있습니다. 예컨데, echo는 무언가를 화면에 "출력하라" 는 명령어가 되는 겁니다.
그 다음에는 그 무언가의 대상이 되는 것이 바로 안녕하세요. 라는 문자열입니다. 문자열이라는 것은 여러개의 글자(=문자)로 이루어진 한 묶음(단어나 문장도 포함됩니다)입니다. 문자가 여러개 열로 늘어섰다고 해서 문자열이라고 합니다. 문자열은 쌍따옴표(double quote)를 양쪽에 써서 묶거나 혹은 홑따옴표(single quote)를 양쪽에 묶어서 지정합니다. 의미가 약간 틀리지만 일단 넘어가기로 합니다.
그 다음에 마지막으로 볼 것이 세미콜론(semi-colon 😉 입니다. 이것은 하나의 명령이 완전히 마쳤다는 것으로 일반 글귀의 마침표와 같은 것입니다. 반드시 한 명령이 끝난 뒤에는 이 기호를 입력해야 합니다. 그렇지 않으면 다음과 같은 에러를 만나게 됩니다.
Parse error : parse error, unexpected T_ECHO, expecting ',' or ';' in ~~
expecting ',' or ';' 부분만 해석해보자면 컴마(comma ,)나 세미콜론(semi-colon ;)이 나와야 하는데 (그렇지 않다) 라고 불평하고 있는 겁니다.
세미콜론을 제대로 붙인다면 몇개의 명령어도 한 줄에 쓸 수 있습니다.
<?php
echo "안녕하세요.";echo "또 안녕하세요."; echo "여전히 안녕하시죠?";
?>
만약 PHP 코드가 끝나는 바로 앞이라면 세미콜론을 생략할 수도 있습니다.
<?php
echo "안녕하세요."
?>
또한 한줄에 붙여서 쓸 수도 있습니다.
<?php echo "안녕하세요." ?>
그럼 다음엔 조건문 if 를 살펴보도록 하겠습니다.
학교에서 jsp과목을 배워서 jsp로 간단히 게시판을 짜고 있습니다.
php에서는 너무나 손쉽게 이루어지는 일들이.. jsp에서는
OTL하게 만드는군요.
php가 정말 편하구나하는 생각이 절로 듭니다 ㅡ.ㅡ;
ㅎㅎ JSP 무지 불편하죠.
PHP 하던 사람은 성질나서 JSP 못합니다. ^^
특히나 강력하다는 Java의 지원따위 받을 일이 없는 경우라면 더더욱 그렇죠.
안녕하세요?
좋은 강의 잘 봤습니다...
php에 대해서 쉽게 접근할 수 있을것 같아요...
계속해서 if문도 살펴 볼 수는 없나요?
if 에 대해서 쓰던 부분이 있는데, 이제와서 관심을 가져주시는 분이 생길줄은 몰랐습니다. ^^a
관심가져주시는 분이 계시다면 계속해서 살펴볼 수 있도록 하겠습니다.
설명 잘 보았습니다.
제가 이러한 메세지를 보았는데요, Parse error: syntax error, unexpected 'echo' (T_ECHO)
echo 문이 잘못된 문법이라고 이해했습니다.
해당 문 은
//echo $query. "";
인데, 혹 오류난 부분이있을까요?
굉장히 오래된 글인데 여기에도 댓글이 달리네요 ^^;
올려주신 내용에는 문제가 될만한 부분이 없어보여서 판단이 어렵습니다. 다만,
//
로 시작한 문장은 원래대로라면 주석 처리가 되어서 뒤에 있는echo
부분에서 에러가 발생하지 않았어야 하는데, 에러가 발생하는 걸로 봐서 올려준 코드 앞 부분에 문제가 있을 것이라 생각합니다.