PHP
IT 위키
더 많은 작업
PHP: Hypertext Preprocessor
HTML 문서 안에 코드를 끼워 넣어 서버에서 실행하는 웹 전용 스크립트 언어
1994년 라스무스 러도프가 만들었다. 처음 이름은 Personal Home Page Tools 였고, 지금의 이름은 자기 자신을 가리키는 재귀 약어다. 서버 측에서 실행되어 결과 HTML만 브라우저로 내려보낸다.
| 종류 | 연산자 |
|---|---|
| 산술 | |
| 대입 | = += -= *= /= .= |
| 비교 | == != <> === !== < > <= >= <=> |
| 논리 | && ! and or xor (논리합은 파이프 기호 두 개) |
| 문자열 | . (연결) .= (연결 대입) |
| 증감 | |
| 오류 제어 | @ (해당 식의 오류 메시지를 억제한다) |
| 실행 | `...` (백틱. 셸 명령을 실행한다) |
- `==` 는 값만 비교하고 `===` 는 값과 자료형을 함께 비교한다.
- `!=` 와 `<>` 는 같은 뜻이다.
- `#` 는 연산자가 아니라 한 줄 주석 기호다. `//` 와 `/* */` 도 주석으로 쓴다.
- `@` 는 다른 언어에 없는 PHP 특유의 오류 제어 연산자다.
웹 서버에 붙이는 방식이 두 가지다.
- 모듈 방식 : 웹 서버 프로세스 안에서 실행된다. 아파치에서는 소스로 설치할 때
`libphp5.so` (PHP 7 이상은 `libphp7.so`) 라는 공유 라이브러리가 만들어지고 `LoadModule php5_module modules/libphp5.so` 로 적재한다. `mod_` 로 시작하는 이름이 아니라는 점이 자주 출제된다.
- FastCGI 방식 : `php-fpm` 이라는 별도 프로세스가 요청을 처리한다.
웹 서버와 분리되어 nginx에서도 쓸 수 있고 자원 관리가 유연하다.
- PHP 5 (2004) — 객체지향 문법을 제대로 갖췄다. 오래 표준처럼 쓰였다.
- PHP 7 (2015) — 실행 엔진을 새로 짜 성능이 크게 올랐다. 스칼라 타입 선언 도입
- PHP 8 (2020) — JIT 컴파일러, 이름 있는 인수, `match` 식