더보기
기술 블로그 이전으로 인해 2022 년도 4월에 작성된 글 입니다.
모든 언어와 프레임워크, 라이브러리 등 버전이 올라갈 수록 변화한다.
변화의 범위가 버그 수정일 수 있고, 기능 추가 & 삭제, 네이밍 변경 등이 있다.
PHP 버전을 무지성으로 올리면 에러가 출력되는데 https://www.php.net 을 통해 변경된 함수를 확인하고 적용하면 된다.
그렇기에 각 버전별로 어떠한 이슈가 있었는지 알고 있을 필요는 없다.
예시)
mysql_connect -> mysqli_connect
7.0 변경 사항
- 성능 향상 - 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
7.1 변경 사항
- 함수리턴과 매개변수에 Nullable 지정(Nullable Type)
- 리턴 타입에 이터러블과 Void 지원(Iterable and Void Returns)
- try catch 구문에서 catch 에 한번에 여러익셉션 감지
- list 함수에서 key 사용가능
- 배열의 인덱스에 음수사용가능
- 이터러블타입인지 확인하는 is_iterable() 함수
7.2 변경 사항
- PHP 7.1 대비 10%의 성능향상
- 함수의 리턴과 매개변수의 타입으로 object 지정가능.
- 추상클래스의 추상매서드를 오버라이딩 가능
- Argon2 해시함수 지원
- 클래스 오토로딩함수 __autoload -> spl_autoload_register 로 전환
- each 함수 삭제예고됨 (이터러블로 대체권장)
7.3 변경 사항
- PHP 7.2 대비 성능이 5% 향상되었다.
- FastCGI 의 로그 작성이 최적화 되었다.
- 기존 여러줄 작성가능한 문법 Heredoc, Nowdoc 의 유연화
- 배열의 마지막요소에 , 가능(Trailing commas)
- 어떤 변수가 셀수있는 타입인지 체크강화
- 어떤 변수가 셀수있는 타입인지 체크하는 is_countable() 함수 추가
- samesite 쿠키 지원
- list 함수의 기본동작이 참조전달(call by references) ->값 복사(call by value) 로 전환
7.4 변경 사항
프리로딩기능이 추가되어서 로딩성능이 10%향상되었다.
기본값은 off이므로 php.ini에서 수동으로 켜야한다.
- 람다식이라고도 부르는 화살표함수 추가(Arrow functions)
- 함수 축약표현식 fn 문법 추가
- 클래스를 미리 메모리에 로딩하는 프리로딩 추가 (Preloading)
- 클래스 프로터티에 타입명시 가능
- PHP 코어의 타입시스템 개선 (Improved type variance)
- Null 병합연산자 추가 (?? 물음표가 두개이다.) (Null coalescing)
- 배열 전개연산자 추가 (Array spread operator)
- 외부 함수 인터페이스 FFI 추가로 다른언어(c나 러스트, go등)으로 작성된 라이브러리 로딩가능
- 사용자 정의 객체의 직렬화 가능
- 삼항연산자 중첩시 왼쪽부터 평가되게 전환예고(언어의 비일관성 개선)
'Programming > $_머니 (PHP)' 카테고리의 다른 글
[실험 PHP 7.0 5탄] - 향상된 예외 상속(Improved Exception hierarchy) (0) | 2024.02.09 |
---|---|
[실험 PHP 7.0 4탄] - 일관된 64비트 지원(Consistent 64-bit support) (0) | 2024.02.09 |
[실험 PHP 7.0 3탄] - 추상 구문 트리(Abstract Syntax Tree) (0) | 2024.02.09 |
[실험 PHP 7.0 2탄] - 메모리 사용률이 현저히 감소 (0) | 2024.02.09 |
[실험 PHP 7.0 1탄] - PHP 5.6 보다 두배 이상 빠른 속도 (0) | 2024.02.09 |