PHP
위키백과 ― 우리 모두의 백과사전.
PHP는 웹 프로그래밍 언어 중 하나다. PHP는 원래 ‘Personal Home Page Tools’의 약자였으나 현재 공식적으로 ‘PHP: Hypertext Preprocessor’라는 재귀 약자를 의미한다.
PHP는 보통 동적인 웹사이트를 작성하는데 쓰이는 서버 측 스크립트 언어이다. 보통 LAMP(Linux-Apache-MySQL-PHP/Perl/Python)환경에서 쓰인다. 비록 PHP는 HTML의 처리를 위해 탄생했으나 웹 프로그래밍이 아닌 다른 분야에도 사용될 수 있다.
많은 서버 측 오픈 소스 소프트웨어는 PHP로 구현되었다. PHP를 바탕으로 하는 프로그램 중 대표적인 예로 phpBB와 위키백과를 구동시키는 미디어위키를 들 수 있다. 대한민국의 PHP로 만든 게시판 중 유명한 것에는 제로보드, 미니보드 등이 있다.
PHP는 마이크로소프트의 ASP.NET 비주얼 베이직, 매크로미디아의 ColdFusion, 선 마이크로시스템즈의 자바 프로그래밍 언어, 파이썬, Perl, 루비 프로그래밍 언어에 대한 대안으로 생각될 수 있다.
그러나 PHP는 스크립트 언어이기 때문에 네이티브 바이너리를 생성하는 C나 C++ 같은 언어에 비해 느리며, 심지어 자바나 파이썬 같이 바이트코드를 생성해주는 언어보다도 실행 속도가 느리고 무겁다는 단점을 가지고 있다. 이는 Zend Optimizer를 통해 개선할 수 있지만 일부 문제가 발생하는 것으로 보고되고 있다.
PHP는 텍스트, 특히 HTML의 처리에 강점을 가지고 있다. URL의 파싱이나 폼 처리, 정규 표현식 등이 그 한 예이다. 또한 다양한 데이터베이스를 지원하므로 데이터베이스와 사용자간의 다리 역할도 잘 수행한다.
그러나 PHP는 과학 및 공학 분야에서 요구하는 고성능 수치연산이나 엔터프라이즈 응용프로그램이 요구하는 대형 프로젝트에 대한 지원이 약하다. 최근 PHP5의 등장으로 엔터프라이즈급 응용프로그램을 작성할 수 있는 기반을 마련했으나 아직 많은 부분이 부족하며 개선해야 할 부분도 많다.
[편집] 예제
다음은 예전에 코미디 프로그램에서 유행했던, 빛나리의 타잔 노래 가사를 출력해주는 코드이다. 이와 같이 PHP 구문은 일반적인 HTML 문서에 삽입되어 동작하게 되어 있으며, 여기서는 <?php ~ ?> 사이의 내용이 PHP 코드로 해석된다.[1]
<html> <head> <title>빛나리의 타잔 주제가</title> </head> <body> <h1>빛나리의 타잔 주제가</h1> <p> <?php $price = 10; $limit = 10000; while($price < $limit) { print '타잔이 '.$price.'원짜리 팬티를 입고,<br />'."\r\n"; $price=$price+10; print $price.'원짜리 칼을 차고 노래를 한다. 아~~!<br />'."\r\n"; } ?> </p> </body> </html>
또한, 간단한 템플릿 기능도 지원한다. 다만 이는 언어의 기능이라기보다는 하나의 트릭에 가까우며, 로직과 디자인이 완전히 분리되지 않는 문제점이 있다. 따라서 본격적인 템플릿 기능에는 Smarty 등의 전문 템플릿 엔진이 많이 사용된다. 다음은 템플릿을 써서 비슷한 결과를 출력하는 PHP 코드이다.(HTML생성물은 위와 다르지만 화면 출력되는 모습은 같습니다)
<?php // 변수 선언 및 초기화 $price = 10; $limit = 10000; ?> <html> <head> <title>빛나리의 타잔 주제가</title> </head> <body> <h1>빛나리의 타잔 주제가</h1> <p> <?php while($price < $limit) { // 반복문 시작 ?> <!-- 여기는 PHP부분이 아닌 HTML부분입니다 --> 타잔이 <?=$price?>원짜리 팬티를 입고,<br /> <?=$price+10?>원짜리 칼을 차고 노래를 한다. 아~~!<br /> <!-- 여기까지 --> <?php $price = $price + 10; } // 반복문 끝 ?> </p> </body> </html>
더 많은 예제는 바깥 고리의 PHP 공식 사이트 매뉴얼을 참고하라.
[편집] 문법
PHP의 문법은 C스타일을 따른다. 자세한 내용은 공식 사이트를 참조하도록 하고 여기서는 C언어와 다른 점만을 나열하겠다.
- 변수는 $기호가 앞에 붙은 단어로 나타내어지고 함수는 함수 이름(매개변수)의 형식으로 나타낸다.
- 함수의 선언 때는 function 이라는 키워드를 앞에 붙여야 한다.
- .(Dot) 연산자는 문자열 결합 연산자이며, 구조체 참조 연산자는 -> 으로 통일된다.
- 포인터를 제공하지 않으며 모든 매개변수 값은 참조에 의한 전달(Call by reference)이다.
- 그 외 class 관련 문법이 C++과 다르다.
PHP4와 PHP5는 객체 문법에 차이를 보이고 있으므로 주의할 필요가 있다.
[편집] 바깥고리
- ((영어)) PHP 공식 사이트
- ((영어)) 아파치 프로젝트 공식 사이트
- PHP 한국어 매뉴얼
- PHPSCHOOL
- 오픈 PHP
![]() |
이 문서는 컴퓨터에 관한 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해갑시다. |
주요 프로그래밍 언어 (더 보기) |
산업용: 델파이 | 루비 | 리스프 | 비주얼 베이직 | 스몰토크 | 어셈블리 | 얼랑 | 에이다 | 오브젝티브-C | 자바 | 자바스크립트 | 코볼 | 파이썬 | 펄 | 포트란 | ABAP | AWK | C | C++ | C# | PHP | PL/SQL | SAS | sh | VB.NET |
역사적 의미가 있는 언어: 베이직 | 시뮬라 | 클리퍼 | 파워빌더 | ALGOL | APL | MUMPS | PL/I |