2023년 11월부터 PHP 8.3이 웹 개발 프로그래밍 언어의 최신 버전이 됩니다. 유니온 유형, 읽기 전용 속성, 개선된 오류 메시지 등 프로그래머를 위한 다양한 개선 사항이 포함되어 있으므로 이를 활용하려면 반드시 업그레이드해야 합니다.

PHP의 새로운 기능을 살펴보고 실제 예제를 사용하여 구현하는 방법을 몇 가지 단계로 설명합니다.

유니온 타입과 교집합 타입

PHP 8.3에서 주목할 만한 업그레이드에는 교집합 타입과 유니온 타입 구현이 포함됩니다. 이러한 유형을 사용하면 코더가 매개변수와 반환 유형을 다양한 종류의 혼합으로 지정할 수 있으므로 코드의 다양성과 내구성이 향상됩니다.

파이프 기호(|)를 사용하여 유니온 유형을 사용하면 매개변수 또는 반환값을 여러 유형으로 지정할 수 있습니다. 예를 들어 문자열 또는 정수 입력을 받을 수 있는 함수가 있다고 가정하면 다음과 같은 방식으로 매개변수를 정의할 수 있습니다.

function foo(int|string $param) { // ... }

반면 교집합 유형을 사용하면 반환값 또는 매개변수를 두 개 이상의 유형 조합으로 정의할 수 있습니다. 따라서 반환값 또는 매개변수는 교집합의 모든 유형을 충족해야 합니다.

function bar(ArrayAccess&Countable $param): int { // ... }

이 예제에서 인수는 ArrayAccess 및 Countable 인터페이스를 모두 구현하는 객체이어야 하며 함수는 정수를 반환해야 합니다.

유니온 유형은 파이프 기호(|)로 정의되며 매개변수 또는 반환값이 가질 수 있는 여러 유형을 지정할 수 있습니다.

반면 교차 유형을 사용하면 매개변수 또는 반환값을 두 개 이상의 유형의 교차로 정의할 수 있습니다. 즉, 매개변수 또는 반환값은 모든 유형의 교집합을 만족해야 합니다.

읽기 전용 속성

PHP 8.3에 추가된 읽기 전용 속성은 또 다른 유용한 측면입니다. 이 속성을 사용하여 속성을 읽기 전용으로 선언하면 값에 대한 추가 변경을 방지하고 초기화를 한 번만 허용할 수 있습니다.

이 기능을 사용하면 중요한 데이터의 의도치 않은 변경을 방지하여 코드의 보안과 신뢰성을 높일 수 있습니다.

이 PHP 8.3 예제는 읽기 전용 속성을 정의하는 방법을 보여줍니다.

Class MyClass
{
Public read_only string $name;
Public function__construct(string $title)
{$this->title = $title;
  }
}

위에서 언급한 예제에서 함수 Object() { [네이티브 코드] }는 $name 프로퍼티를 한 번만 초기화합니다. 이 함수는 읽기 전용 함수로만 지정할 수 있습니다.

이 글도 확인해 보세요:  파이썬을 사용하여 FLAMES 게임 플레이하기

향상된 오류 메시지

PHP 스크립트에서 치명적인 오류가 발생하면 PHP 8.3의 향상된 오류 메시지 속성은 보다 심층적이고 유용한 오류 메시지를 제공합니다. 개발자는 이 기능을 통해 코드 문제를 빠르게 식별하고 해결할 수 있습니다.

정의되지 않은 배열 인덱스에 액세스할 때 향상된 오류 메시지가 작동합니다. 이전 PHP 릴리스에서는 이와 같은 오류 메시지가 표시되었습니다:

Notice: Undefined offset: 4 in /path/to/file.php on line 3

이 오류 메시지는 문제가 어디서 발생했는지에 대해 자세히 설명하지 않습니다. 하지만 PHP 8.3의 향상된 오류 메시지를 사용하면 다음과 같이 더 자세한 오류 메시지가 표시됩니다:

Fatal error: Uncaught Error: Cannot use string offset as an array in /path/to/file.php:3 Stack trace: #0 {main} thrown in /path/to/file.php on line 3 Notice: Trying to access array offset on the value of type null in /path/to/file.php on line 3

이 오류 메시지는 문제의 원인을 파악하는 데 도움이 되는 스택 추적을 제공하며 문자열 오프셋을 배열로 사용하려고 시도하고 있음을 알려줍니다(PHP의 여러 유용한 텍스트 조작 함수 중 하나). 또한 배열 오프셋에서 널 값에 액세스하려고 시도하고 있음을 알려줍니다.

PHP 8.3 준비하기

PHP 8.3으로 업그레이드하는 것은 가장 최근의 주요 기능과 개선 사항을 고려할 때 개발자에게 매우 중요한 일입니다. PHP 8.3에 유니온 및 교차 유형이 도입되어 프로그래머가 복잡한 데이터 유형을 더 쉽게 처리할 수 있습니다.

읽기 전용 속성은 중요한 데이터에 대한 의도치 않은 변경을 방지하여 코드 안정성을 높여줍니다. 일반적으로 PHP 8.3으로 업그레이드하면 개발자는 더욱 강력하고 적응력이 뛰어난 도구에 액세스하여 Laravel과 같은 프레임워크로 고성능 웹 애플리케이션을 만들 수 있습니다.

By 이지원

상상력이 풍부한 웹 디자이너이자 안드로이드 앱 마니아인 이지원님은 예술적 감각과 기술적 노하우가 독특하게 조화를 이루고 있습니다. 모바일 기술의 방대한 잠재력을 끊임없이 탐구하고, 최적화된 사용자 중심 경험을 제공하기 위해 최선을 다하고 있습니다. 창의적인 비전과 뛰어난 디자인 역량을 바탕으로 All Things N의 잠재 독자가 공감할 수 있는 매력적인 콘텐츠를 제작합니다.