> 백엔드 개발 > PHP 튜토리얼 > 8.1 이전 버전에 대한 해결 방법을 포함하여 PHP에서 열거형을 어떻게 사용합니까?

8.1 이전 버전에 대한 해결 방법을 포함하여 PHP에서 열거형을 어떻게 사용합니까?

Patricia Arquette
풀어 주다: 2024-12-17 16:33:10
원래의
460명이 탐색했습니다.

How Do I Use Enumerations in PHP, Including Workarounds for Versions Before 8.1?

PHP의 열거형: PHP 8.1 지원 및 해결 방법

PHP에는 오랫동안 기본 열거형이 부족하여 개발자들이 해결 방법을 모색하게 되었습니다. 그러나 PHP 8.1이 출시되면서 마침내 본격적인 열거형 지원이 이루어졌습니다.

PHP 8.1: 네이티브 열거형

PHP 8.1부터 열거형이 공식적으로 지원됩니다. . 사전 정의된 값 세트를 정의하는 간결하고 유형이 안전한 방법을 제공합니다.

enum DaysOfWeek: int
{
    case Sunday = 0;
    case Monday = 1;
    // etc.
}
로그인 후 복사

PHP 8.0 및 이전 버전에 대한 해결 방법

PHP 8.1 이전에는 몇 가지 해결 방법이 있습니다. 일반적으로 사용됨:

  • 상수: 상수는 전역적이고 변경할 수 없는 값을 제공합니다. 그러나 네임스페이스 충돌이 발생할 수 있으며 실제 열거형만큼 다용도가 아닙니다.
  • 배열: 배열은 더 유연하지만 재정의될 수 있으며 IDE에서 자동 채우기 지원이 부족합니다.

더 발전된 해결 방법은 정적 검증을 통해 기본 열거형 클래스를 생성하는 것입니다. 메서드:

abstract class BasicEnum
{
    // ...
    public static function isValidName($name, $strict = false) {}
    public static function isValidValue($value, $strict = true) {}
}
로그인 후 복사

이 클래스를 확장하면 간단한 입력 유효성 검사가 가능합니다.

abstract class DaysOfWeek extends BasicEnum
{
    // ...
}

DaysOfWeek::isValidName('Humpday');                  // false
DaysOfWeek::isValidValue(7);                         // false
로그인 후 복사

PHP 5.3용 SplEnum

PHP 5.3을 사용하는 경우 또는 나중에 SplEnum은 더욱 강력한 기능을 제공합니다. 해결 방법:

$days = new SplEnum(array(
    'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'
));

if ($days->isValid('Monday')) {
    // ...
}
로그인 후 복사

결론

PHP 8.1의 기본 열거형은 코드를 단순화하고 유형 안전성을 향상시킵니다. 이전 버전의 경우 상수, 배열, BasicEnum 또는 SplEnum 클래스를 포함한 다양한 해결 방법이 있습니다.

위 내용은 8.1 이전 버전에 대한 해결 방법을 포함하여 PHP에서 열거형을 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿