minstudio

새로운 표현식과 편의 기능

👉 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 문 switch ($status) { case 1: $msg = '대기'; break; case 2: $msg = '진행'; break; default: $msg = '완료'; } 현재: match 표현식 $msg = match ($status) { 1 => '대기', 2 => '진행', default => '완료', }; Break 필요 없음 / 값을 즉시 반환 엄격한 타입 비교 (===) 수행
// switch 문 대체
$status = 200;

$message = match($status) {
    200, 201 => 'Success',
    400 => 'Bad Request',
    404 => 'Not Found',
    500 => 'Server Error',
    default => 'Unknown Status',
};
새로운 표현식과 편의 기능 | Minstudio