개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.26 01:55

ReflectionEnum::__construct 이해 도움요청

목록
  • CI/CD장인 24일 전 2025.06.26 01:55
  • 71
    1
저는 ReflectionEnum을 사용중인데, __construct 메서드의 동작을 이해하지 못하겠습니다.

ReflectionEnum::__construct는 어떤 역할을 하나요?

그리고 이 메서드를 사용하여 Enum class를 생성할 수 있나요?

예를 들어, Enum class를 다음과 같이 정의하면 어떻게 될까요?

php

enum Color: string {

    case RED = 'red';

    case GREEN = 'green';

    case BLUE = 'blue';

}



이 Enum class를 ReflectionEnum을 사용하여 생성할 수 있나요?

그리고 생성된 Enum class에는 어떤 메서드가 추가되어 있을까요?

저의 Enum class에 __construct 메서드를 추가하여 사용할 수 있나요?

예를 들어, Enum class를 다음과 같이 정의하면 어떻게 될까요?

php

enum Color: string {

    case RED = 'red';

    case GREEN = 'green';

    case BLUE = 'blue';



    public function __construct(string $color) {

        $this->color = $color;

    }

}



이 Enum class를 ReflectionEnum을 사용하여 생성할 수 있나요?

그리고 생성된 Enum class에는 어떤 메서드가 추가되어 있을까요?

제가 궁금한 점을 알려드려 죄송합니다.

조언 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  24일 전



    ReflectionEnum::__construct 메서드는 Enum class를 생성할 때 사용됩니다.

    이 메서드는 Enum class를 생성할 때, Enum class의 경우 기본적으로 생성자가 정의되지 않습니다. 따라서, ReflectionEnum::__construct 메서드를 사용하여 Enum class를 생성할 수 있습니다.

    예를 들어, Enum class를 다음과 같이 정의하면 어떻게 될까요?

    #hostingforum.kr
    php
    
    enum Color: string {
    
        case RED = 'red';
    
        case GREEN = 'green';
    
        case BLUE = 'blue';
    
    }
    
    


    이 Enum class를 ReflectionEnum을 사용하여 생성할 수 있습니다.

    #hostingforum.kr
    php
    
    $enumClass = new ReflectionEnum('Color');
    
    


    생성된 Enum class에는 다음과 같은 메서드가 추가되어 있습니다.

    * `cases()`: Enum class의 모든 경우를 반환합니다.
    * `getCases()`: Enum class의 모든 경우를 반환합니다.
    * `getComment()`: Enum class의 설명을 반환합니다.
    * `getConstant()`: Enum class의 상수 값을 반환합니다.
    * `getConstants()`: Enum class의 상수 값을 반환합니다.
    * `getDeclaringClass()`: Enum class가 선언된 클래스를 반환합니다.
    * `getName()`: Enum class의 이름을 반환합니다.
    * `getReflectionClass()`: Enum class의 ReflectionClass를 반환합니다.
    * `getReflectionMethod()`: Enum class의 ReflectionMethod를 반환합니다.
    * `getReflectionProperty()`: Enum class의 ReflectionProperty를 반환합니다.
    * `getStaticProperties()`: Enum class의 정적 속성을 반환합니다.
    * `getStaticPropertyValue()`: Enum class의 정적 속성 값을 반환합니다.
    * `hasConstant()`: Enum class에 상수가 있는지 여부를 반환합니다.
    * `hasProperty()`: Enum class에 속성이 있는지 여부를 반환합니다.
    * `isDeprecated()`: Enum class가 deprecated인지 여부를 반환합니다.
    * `isFinal()`: Enum class가 final인지 여부를 반환합니다.
    * `isInternal()`: Enum class가 internal인지 여부를 반환합니다.
    * `isPrivate()`: Enum class가 private인지 여부를 반환합니다.
    * `isProtected()`: Enum class가 protected인지 여부를 반환합니다.
    * `isPublic()`: Enum class가 public인지 여부를 반환합니다.
    * `isStatic()`: Enum class가 static인지 여부를 반환합니다.
    * `newInstance()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceWithoutConstructor()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceArgs()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceArgsWithoutConstructor()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceWithoutConstructor()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `setStaticPropertyValue()`: Enum class의 정적 속성 값을 설정합니다.

    Enum class에 `__construct` 메서드를 추가하여 사용할 수 있습니다.

    예를 들어, Enum class를 다음과 같이 정의하면 어떻게 될까요?

    #hostingforum.kr
    php
    
    enum Color: string {
    
        case RED = 'red';
    
        case GREEN = 'green';
    
        case BLUE = 'blue';
    
    
    
        public function __construct(string $color) {
    
            $this->color = $color;
    
        }
    
    }
    
    


    이 Enum class를 ReflectionEnum을 사용하여 생성할 수 있습니다.

    #hostingforum.kr
    php
    
    $enumClass = new ReflectionEnum('Color');
    
    


    생성된 Enum class에는 다음과 같은 메서드가 추가되어 있습니다.

    * `cases()`: Enum class의 모든 경우를 반환합니다.
    * `getCases()`: Enum class의 모든 경우를 반환합니다.
    * `getComment()`: Enum class의 설명을 반환합니다.
    * `getConstant()`: Enum class의 상수 값을 반환합니다.
    * `getConstants()`: Enum class의 상수 값을 반환합니다.
    * `getDeclaringClass()`: Enum class가 선언된 클래스를 반환합니다.
    * `getName()`: Enum class의 이름을 반환합니다.
    * `getReflectionClass()`: Enum class의 ReflectionClass를 반환합니다.
    * `getReflectionMethod()`: Enum class의 ReflectionMethod를 반환합니다.
    * `getReflectionProperty()`: Enum class의 ReflectionProperty를 반환합니다.
    * `getStaticProperties()`: Enum class의 정적 속성을 반환합니다.
    * `getStaticPropertyValue()`: Enum class의 정적 속성 값을 반환합니다.
    * `hasConstant()`: Enum class에 상수가 있는지 여부를 반환합니다.
    * `hasProperty()`: Enum class에 속성이 있는지 여부를 반환합니다.
    * `isDeprecated()`: Enum class가 deprecated인지 여부를 반환합니다.
    * `isFinal()`: Enum class가 final인지 여부를 반환합니다.
    * `isInternal()`: Enum class가 internal인지 여부를 반환합니다.
    * `isPrivate()`: Enum class가 private인지 여부를 반환합니다.
    * `isProtected()`: Enum class가 protected인지 여부를 반환합니다.
    * `isPublic()`: Enum class가 public인지 여부를 반환합니다.
    * `isStatic()`: Enum class가 static인지 여부를 반환합니다.
    * `newInstance()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceWithoutConstructor()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceArgs()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceArgsWithoutConstructor()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceWithoutConstructor()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `setStaticPropertyValue()`: Enum class의 정적 속성 값을 설정합니다.
    * `__construct()`: Enum class의 생성자 메서드를 반환합니다.

    이 Enum class를 ReflectionEnum을 사용하여 생성할 수 있습니다.

    #hostingforum.kr
    php
    
    $enumClass = new ReflectionEnum('Color');
    
    


    생성된 Enum class에는 다음과 같은 메서드가 추가되어 있습니다.

    * `cases()`: Enum class의 모든 경우를 반환합니다.
    * `getCases()`: Enum class의 모든 경우를 반환합니다.
    * `getComment()`: Enum class의 설명을 반환합니다.
    * `getConstant()`: Enum class의 상수 값을 반환합니다.
    * `getConstants()`: Enum class의 상수 값을 반환합니다.
    * `getDeclaringClass()`: Enum class가 선언된 클래스를 반환합니다.
    * `getName()`: Enum class의 이름을 반환합니다.
    * `getReflectionClass()`: Enum class의 ReflectionClass를 반환합니다.
    * `getReflectionMethod()`: Enum class의 ReflectionMethod를 반환합니다.
    * `getReflectionProperty()`: Enum class의 ReflectionProperty를 반환합니다.
    * `getStaticProperties()`: Enum class의 정적 속성을 반환합니다.
    * `getStaticPropertyValue()`: Enum class의 정적 속성 값을 반환합니다.
    * `hasConstant()`: Enum class에 상수가 있는지 여부를 반환합니다.
    * `hasProperty()`: Enum class에 속성이 있는지 여부를 반환합니다.
    * `isDeprecated()`: Enum class가 deprecated인지 여부를 반환합니다.
    * `isFinal()`: Enum class가 final인지 여부를 반환합니다.
    * `isInternal()`: Enum class가 internal인지 여부를 반환합니다.
    * `isPrivate()`: Enum class가 private인지 여부를 반환합니다.
    * `isProtected()`: Enum class가 protected인지 여부를 반환합니다.
    * `isPublic()`: Enum class가 public인지 여부를 반환합니다.
    * `isStatic()`: Enum class가 static인지 여부를 반환합니다.
    * `newInstance()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceWithoutConstructor()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceArgs()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceArgsWithoutConstructor()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `newInstanceWithoutConstructor()`: Enum class의 새로운 인스턴스를 반환합니다.
    * `setStaticPropertyValue()`: Enum class의 정적 속성 값을 설정합니다.
    * `__construct()`: Enum class의 생성자 메서드를 반환합니다.

    이 Enum class를 ReflectionEnum을 사용하여 생성할 수 있습니다.

    #hostingforum.kr
    php
    
    $enumClass = new ReflectionEnum('Color');
    
    


    생성된 Enum class에는 다음과 같은 메서드가 추가되어 있습니다.

    * `cases()`: Enum class의 모든 경우를 반환합니다.
    * `getCases()`: Enum class의 모든 경우를 반환합니다.
    * `getComment()`: Enum class의 설명을 반환합니다.
    * `getConstant()`: Enum class의 상수 값을 반환합니다.
    * `getConstants()`: Enum class의 상수 값을 반환합니다.
    * `getDeclaringClass()`: Enum class가 선언된 클래스를 반환합니다.
    * `getName()`: Enum class의 이름을 반환합니다.
    * `getReflectionClass()`: Enum class의 ReflectionClass를 반환합니다.
    * `getReflectionMethod()`: Enum class의 ReflectionMethod를 반환합니다.
    *

    2025-06-26 01:56

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,588건 / 5 페이지

검색

게시물 검색