새로운 표현식과 편의 기능
👉 7. Match Expression
더 안전하고 강력한 조건문
match 표현식은 기존의 switch 문을 개선한 기능입니다. 값을 반환할 수 있고(표현식), 일치 여부를 확인할 때 엄격한 비교(===)를 사용합니다.
또한 break를 생략해도 다음 케이스로 넘어가지 않으며(No type coercion, No fallthrough), 코드가 훨씬 간결하고 가독성이 뛰어납니다.
👉 8. Nullsafe Operator
안전한 체이닝 (Optional Chaining)
Nullsafe 연산자(?->)는 객체의 메서드나 속성에 연쇄적으로 접근할 때 유용합니다. 중간에 어느 하나라도 null이면 에러를 발생시키지 않고 전체 평가를 멈춘 뒤 null을 반환합니다.
이 기능 덕분에 불필요한 null 체크 조건문(if 문)을 대폭 줄일 수 있습니다.
👉 11. Attributes
코드 내장 메타데이터
Attributes(어트리뷰트)는 기존에 주석(DocBlock)으로 처리하던 메타데이터를 언어 차원의 공식 문법으로 대체한 것입니다.
주석을 파싱하는 대신 Reflection API를 통해 구조적이고 타입 안전하게 클래스, 메서드, 속성에 추가 정보를 부여할 수 있어 프레임워크 설계 시 핵심적으로 사용됩니다.
Match 표현식 (PHP 8.0+)
// switch 문 대체
$status = 200;
$message = match($status) {
200, 201 => 'Success',
400 => 'Bad Request',
404 => 'Not Found',
500 => 'Server Error',
default => 'Unknown Status',
};