
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