PHP 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
2번째 줄: 2번째 줄:
 
[[파일:PHP 글자.png|썸네일|300픽셀|'''PHP''']]
 
[[파일:PHP 글자.png|썸네일|300픽셀|'''PHP''']]
  
'''PHP'''<!--php, 피에이치피-->(피에이치피)는 [[HTML]] 문서 안에 포함하여 작동하는 서버 측 [[스크립트 언어|스크립트]] 프로그래밍 언어이다. 1994년 [[라스무스 러도프]](Rasmus Lerdorf)가 개발했다. 원래 Personal Home Page의 약자였으나, 나중에 "PHP: Hypertext Preprocessor"의 약자라고 설명되었다.
+
'''PHP'''<!--php, 피에이치피-->(피에이치피)는 [[HTML]] 문서 안에 포함하여 작동하는 서버 측 [[스크립트 언어|스크립트]] 프로그래밍 언어이다. 1994년 [[라스무스 러도프]](Rasmus Lerdorf)가 개발했다. 원래 Personal Home Page의 약자였으나, 나중에 "PHP: Hypertext Preprocessor"의 약자라고 설명되었다. [[리눅스]] 운영체제에 [[아파치]] 웹서버를 설치하고 [[마이에스큐엘]](MySQL) DB 환경에서 PHP 프로그래밍 언어가 주로 사용되기 때문에 [[LAMP]]라는 말이 생겼다.
  
 
== 개요 ==
 
== 개요 ==
27번째 줄: 27번째 줄:
 
*PHP 5.4 : 2012년 3월 1일 출시되었고, 단일 상속의 한계를 벗어난 트레이트와 짧은 배열 구문이 추가되었다.
 
*PHP 5.4 : 2012년 3월 1일 출시되었고, 단일 상속의 한계를 벗어난 트레이트와 짧은 배열 구문이 추가되었다.
 
*PHP 5.5 : 2013년 6월 20일 출시되었고, 제너레이터(Generators)와 코루틴(coroutines), finally 키워드, 강화된 패스워드 해슁 함수, 배열과 문자열의 디레퍼런싱, 상수 클래스명 ::class, empty() 함수가 수식을 지원, foreach 내 이터레이터(Interator)로 논스칼라(non-scalar) 사용, foreach 구문에 list() 사용, op코드 캐시를 위한 Zend OPcache 등과 같은 기능들이 추가 및 변경되었다.
 
*PHP 5.5 : 2013년 6월 20일 출시되었고, 제너레이터(Generators)와 코루틴(coroutines), finally 키워드, 강화된 패스워드 해슁 함수, 배열과 문자열의 디레퍼런싱, 상수 클래스명 ::class, empty() 함수가 수식을 지원, foreach 내 이터레이터(Interator)로 논스칼라(non-scalar) 사용, foreach 구문에 list() 사용, op코드 캐시를 위한 Zend OPcache 등과 같은 기능들이 추가 및 변경되었다.
* PHP 5.6 : 2014년 8월 28일 출시되었다.
+
* PHP 5.6 : 2014년 8월 28일 출시되었고, 선언에 상수 표현식 지원, 가변길이 인수에 대한 문법 (...$args), 매개변수 해체(argument unpacking), 거듭제곱 연산자 (**), 추가적인 use 문 (use function, use const), SAPI 모듈을 위한 새로운 phpdbg 디버거 등과 같은 기능이 추가 및 변경되었다.
**선언에 상수 표현식 지원, 가변길이 인수에 대한 문법 (...$args)
+
* PHP 7.0 : 2015년 12월 3일 출시되었고, 성능 향상 - PHP 5.6 보다 두배 이상 빠른 속도, 메모리 사용률이 현저히 감소, 추상 구문 트리(Abstract Syntax Tree), 일관된 64비트 지원(Consistent 64-bit support), 향상된 예외 상속(Improved Exception hierarchy), 많은 치명적 에러들이 예외로 전환 됨, 보안 난수 발생기(Secure random number generator), 오래 됐거나 지원하지 않는 SAPI와 확장 지원 중단, Null 병법 연산자(The null coalescing operator (??)), 리턴 값, 스칼라 타입 정의, 익명 클래스(Anonymous Classes), Zero cost asserts등과 같은 기능들이 추가 및 변경되었다.<ref name = "위키백과"></ref><ref name = "PHP공식홈페이지"> PHP 공식 홈페이지 - http://docs.php.net/manual/kr/history.php.php </ref>
**매개변수 해체(argument unpacking)
 
**거듭제곱 연산자 (**)
 
**추가적인 use 문 (use function, use const)
 
**SAPI 모듈을 위한 새로운 phpdbg 디버거 등과 같은 기능이 추가 및 변경되었다.
 
 
 
* PHP 7.0 : 2015년 12월 3일 출시되었다. 엔진과 파서 재작성으로 큰 성능 향상이 있었다.
 
**PHP 5.6 보다 두배 이상 빠른 속도, 메모리 사용률이 1/5감소,<ref name= "phpce 강연"> php컨퍼런스 2018 라스무스강연 https://www.youtube.com/watch?v=SvEGwtgLtjA </ref>
 
**추상 구문 트리(Abstract Syntax Tree)
 
**일관된 64비트 지원(Consistent 64-bit support)
 
**향상된 예외 상속(Improved Exception hierarchy)
 
**많은 치명적 에러들이 예외로 전환 됨, 보안 난수 발생기(Secure random number generator)
 
**오래 됐거나 지원하지 않는 SAPI와 확장 지원 중단
 
**Null 병법 연산자(The null coalescing operator (??))
 
**리턴 값, 스칼라 타입 정의, 익명 클래스(Anonymous Classes)
 
**Zero cost asserts등과 같은 기능들이 추가 및 변경되었다.<ref name = "위키백과"></ref><ref name = "PHP공식홈페이지"> PHP 공식 홈페이지 - http://docs.php.net/manual/kr/history.php.php </ref>
 
 
 
* PHP 7.1
 
** 2016년 12월 3일 공개되었다. 추가된 특징은 다음과 같다.
 
**함수리턴과 매개변수에 Nullable 지정(Nullable Type)
 
**리턴 타입에 이터러블과 Void 지원(Iterable and Void Returns)
 
**try catch 구문에서 catch 에 한번에 여러익셉션 감지
 
**list 함수에서 key 사용가능
 
**배열의 인덱스에 음수사용가능
 
**이터러블타입인지 확인하는 is_iterable() 함수
 
  
  
104번째 줄: 80번째 줄:
  
 
* 거의 모든 [[OS]]에서 실행이 가능하고, PDO를 이용할 경우 여러가지의 DBMS 연결을 지원한다.
 
* 거의 모든 [[OS]]에서 실행이 가능하고, PDO를 이용할 경우 여러가지의 DBMS 연결을 지원한다.
* 속도가 빠르며, 특히 윈도우 서버보다는 [[리눅스]]서버환경에 각종모듈들이 최적화되어있다.
+
* 속도가 빠르며, 특히 [[리눅스]], [[Nginx]], PHP, [[MySQL]]은 속도가 월등하다.
 
* 클래스 생성 및 상속이 가능하므로 코드를 모듈화시키기가 용이하다.
 
* 클래스 생성 및 상속이 가능하므로 코드를 모듈화시키기가 용이하다.
 
* [[ASP]]나 [[JSP]]처럼 컴포넌트나 패키지등을 따로 설치하지 않고, 파일 업로드 및 파일 전송 등의 기능이 내장되어 배포되고있다.
 
* [[ASP]]나 [[JSP]]처럼 컴포넌트나 패키지등을 따로 설치하지 않고, 파일 업로드 및 파일 전송 등의 기능이 내장되어 배포되고있다.
110번째 줄: 86번째 줄:
 
* 데이터베이스 연결에 함수를 사용하므로 직관적이고 간결하다.
 
* 데이터베이스 연결에 함수를 사용하므로 직관적이고 간결하다.
 
* 이미지를 동적으로 생성할 수 있다.
 
* 이미지를 동적으로 생성할 수 있다.
* [[XML]], [[ZIP]] 암호화 등에 관련된 다양한 함수를 지원한다.
+
* [[XML]], [[ZIP]], [[PDF]], 암호화 등에 관련된 다양한 함수를 지원한다.
  
 
== 한계점 ==
 
== 한계점 ==
134번째 줄: 110번째 줄:
 
* [[JAVA]]
 
* [[JAVA]]
 
* [[HTML]]
 
* [[HTML]]
* [[Nginx]]
 
 
* [[아파치]]
 
* [[아파치]]
 
* [[ASP]]
 
* [[ASP]]

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)