> 백엔드 개발 > PHP 문제 > PHP에서 JAVA 열거 함수를 구현하는 방법

PHP에서 JAVA 열거 함수를 구현하는 방법

醉折花枝作酒筹
풀어 주다: 2023-03-10 18:14:02
앞으로
1414명이 탐색했습니다.

이 글에서는 PHP에서 JAVA 열거 함수를 구현하는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

PHP에서 JAVA 열거 함수를 구현하는 방법

PHP에서 JAVA 열거 함수 구현 방법

Overview

N 버전을 반복한 후 마침내 Java 열거 정의와 매우 유사한 최신 버전에서 PHP를 구현하고 열거 라이브러리 php-enum을 사용했습니다.

여기서 Java 열거 기능을 구현해야 하는 이유를 언급할 필요가 있습니다. 나는 Java의 열거형에 대해 알게 되었습니다. 그 전에는 오랫동안 PHP를 사용했지만 열거형에 대해서는 들어본 적이 없습니다. 그러나 Java 프로젝트에서는 특히 API가 통합 상태 코드를 반환할 때 열거형을 볼 수 있습니다. 씬이 거의 표준이 되어서 무시할 수가 없어서 사용법도 익히게 되네요.. PHP를 다시 사용해보면 열거형이 없는게 익숙하지 않아서 검색해보고 싶은 마음이 듭니다. PHP 열거형

우리 모두 알고 있듯이, PHP에는 열거형을 사용하는 데 두 가지 옵션이 있습니다. 하나는 SPL에서 제공되는 공식 열거형 라이브러리입니다. 걱정하지 마십시오. 문서를 읽은 후에는 확장 기능으로 설치해야 할 뿐만 아니라 제공되는 방법도 매우 제한적이라는 것을 알게 될 것입니다. 따라서 일반적으로 우리는 타사 열거형 라이브러리를 사용하는 두 번째 방법을 선택합니다. 제3자 열거형의 소스 코드를 읽어보면 Java 열거형의 그림자가 다소 있음을 알 수 있습니다. 그러나 Java 열거형 기능을 구현했다면 오늘날의 라이브러리와 기사는 존재하지 않았을 것입니다.

많은 열거형을 확인한 결과 모두 Java 열거형의 핵심 기능인 사용자 정의 속성 값이 부족하다는 것을 발견했습니다. (Java 열거형에서 열거형은 단순히 상수 이름과 상수 값을 정의하는 것이 아닙니다. 요소) 또한 PHP에서 이 기능을 구현하는 것이 쉽지 않다는 것을 알았으므로 여러 프로젝트에서 사용해야 하기 때문에 두 속성을 수정하는 기능을 구현하기 위해 프로젝트에 추상 클래스를 작성했습니다. 여러 번 재구성하고 내 생각을 뒤집은 끝에 마침내 Java 열거형 구현에 가까워졌습니다.

Installation

composer require phpenum/phpenum
로그인 후 복사

빠른 시작

PHPEnum은 Java 열거형과 함께 사용할 수 있습니다. 예를 들어 성별을 나타내는 열거형을 정의하면

Java에서:

public enum GenderEnum {
    MALE(1, "male"),
    FEMALE(2, "female");

    private Integer id;
    private String name;

    GenderEnum(Integer id, String name) {
        this.id = id;
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}
로그인 후 복사

PhpEnum 사용:

class GenderEnum extends \PhpEnum\Enum
{
    const MALE = [1, 'male'];
    const FEMALE = [2, 'female'];

    private $id;
    private $name;

    protected function construct($id, $name)
    {
        $this->id = $id;
        $this->name->$name;
    }

    public function getId()
    {
        return $this->id;
    }
    
    public function getName()
    {
        return $this->name;
    }
}
로그인 후 복사

사용법도 매우 유사하다는 것을 알 수 있습니다.

Java에서:

GenderEnum.values(); // enum instance array
GenderEnum.valueOf("FEMALE"); // enum instance
GenderEnum.MALE.equals(GenderEnum.valueOf("MALE")); // true
GenderEnum.MALE.name(); // MALE
GenderEnum.MALE.ordinal(); // 0
GenderEnum.MALE.toString(); // MALE
GenderEnum.MALE.getId(); // 1
GenderEnum.MALE.getName(); // male
로그인 후 복사

PhpEnum 사용:

GenderEnum::values(); // enum instance array
GenderEnum::valueOf('FEMALE'); // enum instance
GenderEnum::MALE()->equals(GenderEnum::valueOf('MALE')); // true
GenderEnum::MALE()->name(); // MALE
GenderEnum::MALE()->ordinal(); // 0
(string)GenderEnum::MALE(); // MALE
GenderEnum::MALE()->getId(); // 1
GenderEnum::MALE()->getName(); // male
로그인 후 복사

그뿐만 아니라, PhpEnum은 하위 클래스에서도 고급 기능을 제공합니다

GenderEnum::MALE()->idEquals(1); // true
GenderEnum::MALE()->NameEquals('male'); // true
GenderEnum::containsId(1); // 1
GenderEnum::containsName('male'); // 1
GenderEnum::ofId(1); // enum instance
GenderEnum::ofName('male'); // enum instance
로그인 후 복사

추천 학습: php 비디오 튜토리얼

위 내용은 PHP에서 JAVA 열거 함수를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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