테크레시피

신기능 다수 추가한 PHP 8 정식 출시

웹사이트 등에서 이용되는 오픈소스 프로그래밍 언어와 PHP 주요 업데이트인 PHP 8.0.0이 나왔다. 코드 실행시간 단축이 예상되는 JIT 컴파일과 복수 형태에 대응할 수 있는 유니온형 등 여러 새로운 기능을 구현했다.

PHP 8에 새로 탑재된 기능 중 하나가 자주 실행되는 코드를 컴파일하는 프로그램 실행 속도를 향상시켜주는 JIT다. PHP 8에는 트레이싱 JIT과 함수 단위 JIT 2종류를 내장해 트레이싱 JIT를 사용할 경우 성능은 JIT이 없는 경우와 비교해 벤치마크에서 3배, 실행 시간이 긴 응용 프로그램에서 1.5∼2배가 되고 있다. 또 함수나 메소드를 호출할 때 어떤 인자에 어떤 값을 전달할지 이름으로 지정할 수 있는 명명된 인수가 구현됐다. 그러면 필요한 변수만 지정하고 불필요한 변수를 생략할 수 있다.

PHPDoc 대신 PHP 본래 구문에서 메타 데이터를 설명하는 문서를 생성할 수 있게 됐고 생성자 템플릿을 쉽게 작성할 수 있는 등 생성자 설명 템플릿도 단순화했다. 여러 형태 조합에 대응할 수 있는 유니온형을 구현했고 PHP7까지 스위치-케이스(Switch-Case)문으로 묘사하던 판정식을 쉽게 작성할 수 있는 매치(Match)을 도입했다. ‘?’ 변수를 연결하는 체인 전체 Null 판정을 할 수 있는 연산자(Nullsafe)를 도입해 개별 변수에 Null 판정을 할 필요가 없다.

PHP8은 비교 연산자 동작이 바뀌며 숫자 문자열을 비교할 때 수치 비교를 사용하게 됐다. 그렇지 않으면 숫자를 문자열로 변환하고 문자열 비교를 사용한다. 또 대부분 내부 함수는 변수 검증에 실패하면 오류 예외를 반환한다.

이번 대규모 업데이트를 통해 일부 호환이 사라지고 사소한 코드 수정이 필요할 수 있다. PHP8에 더해진 새로운 기능에 대한 자세한 내용은 이곳에서 확인할 수 있다.