개발자 Q&A

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

2025.04.11 10:55

ReflectionUnionType::getTypes()에 대한 이해를 부탁드립니다.

목록
  • Perl매니아 2일 전 2025.04.11 10:55
  • 29
    1
제가 ReflectionUnionType::getTypes() 함수를 공부중인데, 이 함수가 반환하는 Types 컬렉션에 대해 궁금합니다. Types 컬렉션은 UnionType의 타입을 포함하는 컬렉션인 것 같아요. 하지만 Types 컬렉션에 포함된 타입이 UnionType의 하위 타입일 경우, 하위 타입의 하위 타입까지 포함되나요? 아니면 단순히 UnionType의 하위 타입만 포함되나요? 정확한 이해를 위해 도움을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    ReflectionUnionType::getTypes() 함수는 UnionType의 하위 타입을 포함하는 컬렉션을 반환합니다.

    이 컬렉션에는 UnionType의 하위 타입만 포함되며, 하위 타입의 하위 타입은 포함되지 않습니다.

    예를 들어, 다음 코드를 살펴보겠습니다.

    #hostingforum.kr
    php
    
    use ReflectionUnionType;
    
    use ReflectionClass;
    
    
    
    $reflectionClass = new ReflectionClass('MyUnionType');
    
    $unionType = $reflectionClass->getUnionTypes()[0];
    
    
    
    $types = $unionType->getTypes();
    
    
    
    foreach ($types as $type) {
    
        echo $type->getName() . "n";
    
    }
    
    


    MyUnionType은 다음과 같이 정의되어 있다고 가정해 보겠습니다.

    #hostingforum.kr
    php
    
    class MyUnionType extends UnionType
    
    {
    
        public function __construct()
    
        {
    
            parent::__construct([new ReflectionClass('MySubType1'), new ReflectionClass('MySubType2')]);
    
        }
    
    }
    
    
    
    class MySubType1
    
    {
    
    }
    
    
    
    class MySubType2 extends MySubType1
    
    {
    
    }
    
    


    이 경우, $types 컬렉션에는 MySubType1과 MySubType2만 포함되어 있습니다. MySubType2의 하위 타입인 MySubType3은 포함되지 않습니다.

    따라서, ReflectionUnionType::getTypes() 함수가 반환하는 Types 컬렉션은 단순히 UnionType의 하위 타입만 포함됩니다.

    2025-04-11 10:56

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

검색

게시물 검색