프로그래밍[Univ]/웹 프로그래밍

[PHP] PHP 기초

Cloud Travel 2011. 10. 15. 15:08
1. PHP
 - C/Perl의 장점을 이어받은 객체 지향 언어
 - 웹 개발을 위해 만들어진 스크립트 언어
 - 장점
  > 범용성을 지닌 오픈소스 프로젝트
  > 다양한 플랫폼/DBMS 지원
  > 설치, 개발, 운용이 쉬움
  > 저렴한 가격, 고성능, 대규모 프로젝트도 가능!!
 - 작동원리
  > php파일을 사용자가 웹서버로 전송하면, php모듈에 의해 HTML파일로 해석
     (PHP모듈에서 필요시 DBMS로의 데이터 수신및 발신)
  > 해석된 html파일을 웹서버를통해 사용자에게 전달 / 랜더링 후 출력
 - PHP와 조합되는 가장 많은 형태(Cost Free)
  > Linux + Apache + MySQL + PHP / LAMP

2. PHP 기초적 문법
 - PHP 생성 블럭 : <?php    ?>
 - 블럭 내에서의 주석 : //, /* */(C 스타일)
 - 변수는 $로 시작해야지 된다.(Perl스타일)
 - 문자열은 " "를이용하여 나타내며, C와 유사한 스트링 연산자를 제공해준다.
 - 기초적 연산자는 C와 모두 동일하다.
 - 데이터 타입 : 스크립트언어의 특징으로 동적으로 데이터형이 자동으로 변한다.
  > 사용자에 의한 강제적형변환 기능도 제공을 해준다.
  > boolean (true/false), integer, float, String, Array 등이 있다.

3. 변수의 확장성
 - PHP는 출력할때 외부의 변수를 확장을 하는가 안하난가를 정할수 있다.
  > 변수의 확장이란? 외부의 변수를 치환해서 보여주는가, 아니면 TEXT그대로를 보여주는 가의 문제
  ex) echo 'He is {$name}.'  // '  '는 변수확장이 불가능하다.
                                          // 따라서 He is {$name}. 이라고 그대로 출력된다.
        echo "He is {$name}."   // " "는 변수확장이 가능하다. 만약 $name = "kim"; 이라고 전에 선언되있었다면
                                           // 따라서 He is kim. 라고 출력이 된다. 
        echo << 'EOT' xxx EOT // EOT는 EOT가 다시나오기 전까지의 모든 것을 문자열로 묶어준다. 
                                            // 'EOT'로 시작된 것은 내부의 변수가 확장되지 않고 TEXT그대로 나타난다.
        echo << EOT xxx EOT   // 반면 다음과같이 ' ' 가없는 EOT는 변수의 확장을 실시한다.

4. Array
 - 순서가 있는 Map형(Hash형 개념의 확장) 자료형으로 제공해준다. 
 - Array함수를 이용해서 선언하며, 'key' => 'value' 형식으로 쓰고, key값이 없이 온 값은 
   알아서 0부터 index값을 지정해준다.
  ex) $a = array ( 'name' => 'KIM', 'age' => '23', 173, 60 }  // key값이 없는 173과 60의 index는 0,1 이다.
        echo {$a['name']}   // KIM을 출력해준다.
        echo {$a['0']}  {$a['1']}  // 173과 60을 출력해준다. 

5. 제어문
 - C와 동일

6. 상수 지정(Constant)
 - define함수를 이용하여 정의하며 일반적으로 대문자만을 이용한다.
 - '_'로 시작하는 이름은 일반적으로 시스템에서 사용하고 있으므로 피하는 것이 좋다.
  ex) define("NAME",  "KIM");

7. 함수
 - function 키워드를 이용하여 함수를 작성한다.
 - function의 argument 형식
  > function test($value) {} // call by value
     function test(&$value) {} // call by reference
     function test($array) {} // 배열도 올수 있다.
     function test($value = "default") {} // value에 값이 없으면 value값을 default로 준다.

8. Include / Require
 - 특정 php문서의 내용을 해당자리에 포함하여 실행
  - include : 파일을 찾지못하면 경고만 발생 / require : 파일을 찾지못하면 에러
  - _once : include나 require뒤에 _once를 붙이면 특정파일이 한번만 include되도록 보장
  - 개발시에는 require_once를 이용하여 원하는 페이지가 사용자에게 전달될수 있도록 만든다.

9. 전역변수
 - 함수내에서 선언한 변수를 전역변수로 생각하는 JavaScript와 반대로 PHP는 지역변수를 우선으로 생각한다.
 - JavaScript에서 var로 지역변수로 생성해줘서 지역변수로 쓰는 것처럼,
   PHP는 global을 써서 전역변수를 가져온다.

10. Form Handling
 - 폼테그를 이용한 입력은 다음 변수를 통해 받을 수 있다.
 - GET메소드 : $_GET["name"] / POST메소드 : $_POST['name']
   > $_REQUEST = $_GET + $_POST + $_COOKIE
      (COOKIE가 사용자와 겹칠 가능성이 높으므로 사용을 피한다.)