본문 바로가기

[s]PHP

PHP 기초


『 언어란.! 』

일반적으로 아는 언어는 영어,독일어,한국아,일본어등등의 우리와 다른 국가에 사는 사람과의
자신의 생각을 표현하기 위한 도구.컴퓨터에서의 언어란 . 일반적 상식상의 언어와 동일.
컴퓨터에세 명령을 내리기 위해서 컴퓨터와 사람간의 소통을 위한 표준화된 표현 방법은
Language 라고 한다. 처음 영어를 배울 때 처럼 컴퓨터 언어는 아주 딴나라 세상의 글자이고 
외계인의 말같다.
컴퓨터 언어는 기본적인 특징과 구조를 가지고 있다. 그 특징과 구조,원리를 파악한다면
현재 나온 수천종의 언어도 마음만 먹고 , 시간적 여유만 있다면 쉽게 접근하여
자신의 언어로 만들수 있다.

『 PHP? 』
: 역사를 알아야 할 절실한 필요성은 없지만 우리가 사용하는 언어를 어떤사람의 공으로 
만들었는지 그의 이름만은 잊지 않고 감사히 하기 위해 공부를 합니다.


PHP는 1995년 Rasmus Lerdorf에 의해 만들어 졌는데 처음 만들게 된 동기는 자신의 이력서
방문자 체크를 위해 고안되었지만, 소스가 인터넷에 공개 되면서 다양한 사람들이 참여하고,
여러 사람들의 요구로 1997년 PHP/FI, Personal Home Page / Forms Interpreter라는 약어로
공개 소스 프로젝트가 시행되면 현재까지 이어 지고 있다.
공식 버전 발표는 1997년 11월에 PHP/FI 2.0으로 공식 릴리즈 되었다.

발표된지 얼마 되지 않아 Andi Gutman 과 Zeev Suraski가 전체 코드를 재작성하여 성능 행상을 하였다
그래서 나온 버전이 PHP3이머 PHP2.0은 거의 패기 되었다.
PHP의 용어 자체도 HyperText Preprocessor 로 명칭이 변경 되었다.

1998년 이후 두 사람이 전체코드를 다시한번 재작성하면 Zend Engine이라는 이름하에 자신들이
Zend라는 회사를 설립하고 PHP4를 발표하면서 거의 주도적으로 운영 광리하고 있다.
1999년부터 폭발적인 사용자가 생기면 매년 엄청난 숫자의 웹 사이트들이 PHP이용한 웹 사이트를
개발중이다.
2004년 현재 Zend사는 Zend Engine 2.0으로 명명되어진 PHP5의 베타 버전을 개발하고 있으며,
조만간 PHP5의 정식 버전이 발표될것이다.
PHP5는 기존에 문제시 되었던 대형화 프로그램 개발을 위해 Class를 도입하여,
대규모 사이트개발과 다량 개발자의 협업을 위해 개발 중이다.또한 기존의 성능 문제등
많은 문제점을 수정한 버전이 발표될 예정이다.
본 수업에서는 PHP5의 베타 버전을 이용해서 PHP에서의 Class 작성 법과 활용법에 대해 미리 숙지하여
추후 PHP5로의 전환시 혼란의 시간을 겪지 않도록 할것이다.
 
『 PHP로 할수 있는 분야! 』

PHP는 상당한 프로그래밍 연역을 넘보고 있지만 아직 상당히 거리감이 있다.
PHP의 주된 사용은 Markup Language 즉 우리가 흔히 아는 HTML과 무선 인터넷용 기기용 WML등을
표현하기 위한 CGI 프로그래밍언어로 , 웹상,모바일 웹상 즉 브라우저를 통한
프로그래밍이 가능 하다. 우리가 흔히 보는 쇼핑몰 , 웹메일,공동구매,옥션등은
모두 이런류의 CGI 프로그래밍 언어로 작성된것이다.

PHP에서 또다른 영역은 CLI와 Windows Application 분야인데. CLI는 Command Line Inerface로
우리가 DOS창 같은 CUI 환경에서 프로그래밍이 가능하도록 하는 것으로
기존에 Perl이나 Shell Script등으로 작성하였던 부분은 PHP로 개발가능하게 되어있다.
그외 서버 프로그래밍도 가능은 하나 상대적으로 아직은 미갸척 분야로 보고
본래의 기능을 활용하는 것이 좋을 듯 싶다. 즉 재 성능을 내기 힘들가

Windows Application 분햐는 GTK라는 라이브러리를 이용하지만 아직은 시기 상조.
상당히 많은 분야를 지원하고 고급기능도 있지만 PHP는 Web용 Server Side Script 언어겸
Command Line Interface 언어이므로 그 이외의 분야는 아직은 개발단계이며,
Zendm Engine 2.0 이후 버전에서 PHP언어에서 한쪽으로 쏠려있는 구조를 개선한다면
도전할수 있는 분야는 많다.

또한 PHP는 C로 작성된 엔진이므로 , C에서 가능한 모든 것을 수용할수있다.
그러므로 앞으로 계속 주시 하여야 겠지만……
 
『 PHP의 시작.! 』

PHP는 Markup Language 속에 프로그래밍을 하여 , 상황에 따른 동적인 상황을 연출하기위한 언어이므로
Markup Language 안에서 "이 부분은 PHP 언어 부분이니 상황에 맞추어 해석하라~"라고 알려주어야 한다.
그래서. PHP는 프로그래밍의 시작과 끝을 알려주어야 한다.

* 여러가지 PHP언어 구역 표시 방법 *
소스코드 :

<? 나는 PHP가 ?>

<?php 내도 PHP랑께 ?>     ?초강추!

<<script> language="php">  ?ASP.Net 프로그래밍 짜는듯 …
나도 PHP지롱~
<<script>>

<% 나도 PHP이지만 ASP의 구역 태그처럼도 가능 .,.비추~ %>


* 예제 *
소스코드 :

        <html>
<head>
        <title>나는 오프스터디 2기 생입니다.</title>
</head>
<body>
<p> <?php echo "우헹헹헹"; ?> </p>
</body>
</html>

= 오늘의 풍선말~!

인용 또는 결과 :

프로그래밍을 작성하고 내가 원했던 결과가 나오지 않는다고 , 자신의 머리로
소스를 보면서 해석하지 마십시요. 여러분의 소스 해석 능력보다
컴퓨터와 엔진의 해석능력이 더 빠르며 정확합니다.
모든 것은 담겨진 것의 출력을 통해 알수 있습니다. 단순 작언은 컴퓨터가 빠릅니다.
오류또는 않되면 무조건 출력~!~ 

[root@good /root]$ _


『 변수~ 변정수씨의 약자가 아닙니다. 』

변수란 무언가를 담기 위한 그릇이나 항아리(장독대)를 뜻한다.
무언가 라는 것은 즉 데이터,정보를 뜻한다. 컴퓨터 언어의 구조는 우리 인간의 생활과 삶을
반영한거라고 생각 하면 쉽다. 언어 개발자도 인간 자체의 삶을 기호화 한것이다.

PHP의 변수 선언즉 컴퓨터에게 알리기 위한 방법은 Perl과 같은 형식이다.

소스코드 :

$변수명 …. 저앞을 뱀이 기둥 또아리를 틀었다고 보는이와 저 같은 사람은 달라 즉. 돈..Money

변수에 값 담는 법

$NUM = 213408723407298725;
$JANGDOKDAE = "안녕 세계야~";
$Hello = 'Hello! World';
$A = 'Hello!';
$B = 'World';
$C = $A.$B;
$D = $A." 오케바리 ".$B;
$E = "오케바링 아싸리~ $Hello <- 이게뭐야~";
$F .= $A.$B.$C.$D.$E;

$A = "Hello"; H,e,l,l,o,{BODY}
$A = 'Hello'; H,e,l,l,o


쌍따움표와 그냥 따움표의 표현의 차이는 실제적인 하드웨어 적인 메모리용량 차지에서 나타나는것인
큰 특징이며, 그냥 따움표로 정보를 변수에 집어 넣을때는 있는 그대로를 저장한다.
" "사이에 문자를 넣었을때는 마지막에 {BODY}(NULL)이 하나 더 들어가서 1Byte가 더 소요된다.

가변변수~

변수를 상황에 따라 유동적 즉 동적으로 상황에 맞추어 설정할수 있도록 하는 방법은 다음과 같다.

소스코드 :

$a = "hello";
$$a = "world";
$c = ${$a};

 
변수의 저장된 값을 알고 싶어요~

우리가 컴퓨터의 메모리를 현미경과 돋보기로 내용을 볼수 있다면 우리는 
스몰빌(MBC외화~ 슈퍼맨의 어린실정)일것이다. 그렇다면 우리는 화면에 즉 모니터에 그 내용을 인간이
이해할수 있는 문자로 보여주기를 원한다.

소스코드 :

<?
echo 변수명;
print 변수명;
?>
<?=변수명; ?>

<?
echo <<<END
OPENPHP.com & OPENPYTHON.com 운영자는 사악한 교주이며,
양의 탈을쓴 악독한 교주이다.
오~ 믿으라~… 다 담요를 팔아오세요.!
우리는 다단계
최소 밑으로 회원 3명씩.!
END;
?>


기본적인 변수의 값을 연산하기 위한 연산자?

컴퓨터는 비싸고 커다란 계산기라고 보는 것이 좋다.
각종 자료에 대한 계산을 위한 기호는 다양하게 있다. 모든 연산자를 이시간에 아는 것은 무리~
아주 기본적인 것만 오늘하고 넘어 갑니다.

인용 또는 결과 :

- , + , * , / : 산수적인 기본적인 연산자와 , 산수,수학에서 쓰는 대부분의 산술연산자는 가능!

++ , -- :
$a = 3; $a++; echo $a; // 4
$a = 3; $a--; echo $a; // 2

== : $a == $b 는 $a에 들어 있는 값과 , $b에 들어 있는 값이 같느냐~

[root@good /root]$ _

 
『 주석! 』

주석.! 주식? 김주석~!.. 주석이라는 것은 프로그램에게 주석처리한 부분은 프로그램이 아니닌 
해석하지 말고 넘어 가쇼~ 라고 부탁?하는 것이다. 주석의 용도는 다양하나 일반적인 프로그래머의 
메모 또는 해결하지 못한 코드나 지우기는 아까운 코드를 엔진에서 해석하지 않게 하기 위한
문법이다.

인용 또는 결과 :

// , # : 해당 라인의 줄을 주석 처리한다.
/* */ : 구간을 지정하여 주석 처리한다.

[root@good /root]$ _


소스코드 :

<?

$a = 33;
$b = 27;

// echo $a * $b;

# echo $a - $b;

/*
$a = $a + $b - ($a * $b);
echo $a;
*/

echo $a + $b;
?>


주석은 코드를 잠시 프로그래밍 언어의 엔진으로부터 해석을 유보하는 기능도 있지만.
어려운 문법으로 구성되어진 프로그램과 많은 양의 프로그램소스 코드에서
표지판 역할을 하는등의 여러가지 기능은 가진 것으로 여러분의 소스코드에 주석을 다는 습관을 드리는 것은 참으로 좋은 습관이라 할수 있다.

일부에서는 주석이 많아 프로그램의 파일크기가 커진다는 반론을 제기하지만. 부질없는 행위다.

주석을 다는 것은 우선적으로 프로그램의 추후 유지 보수시 빠른 처리를 위한 표지판역활만
제대로 해준다는 그것으로 족하다 . 주석을 다는 것에 대한 악박감은 전혀 가질 필요성은 없다.
다만 공동작업시에는 다른 사람을 배려하기 위한 주석은 반드시 해주어야 한다. 

『 제어문 』

컴퓨터는 어떤한 일들을 시키기 위해 기본적으로 제어문들이 있으며 , 거의 모든 먼어에 프로그램의
기본이며 다양한 기능도 아래의 제어문들을 이용하여 구성된것이다.
제어문의 구조와 원리를 안다면 여러분은 여러가지 프로그래밍 언어를 쉽게 접근할수 있다.
이것이 바로 프로그램의 기본 토대가 되는 토양과 같다.

소스코드 :

If , else , elseif

if : 사전적으로 해석하면 만약에~ , if는 컴퓨터에게 질문을 전지는 것이다.

$a = 1;
If($a == 1)
{
     echo '변수 $a 에는 1이 들어 있군요.';
}
elseif($a == 2)
{
echo '변수 $a 에는 2가 들어 있군요.';
}
else
{
     echo '어랍쇼~ 변수 $a에는 1도 2도 않들어 있고 '.$a.'가 들어 있네요.~ 이런 맙소사';
}


위를 다음처럼 바꿀수도 있다.

소스코드 :

$a = 1;
if($a == 1)
     echo '변수 $a 에는 1이 들어 있군요.';
elseif($a == 2)
echo '변수 $a 에는 2가 들어 있군요.';
else
     echo '어랍쇼~ 변수 $a에는 1도 2도 않들어 있고 '.$a.'가 들어 있네요.~ 이런 맙소사';

내용출처 : http://www.openphp.com