라이브러리

[PHP] ReflectionIntersectionType::getTypes - 교차 유형에 포함된 유형을 반환합니다.




ReflectionIntersectionType::getTypes


PHP 8.0 버전부터 ReflectionIntersectionType 클래스가 추가되었습니다. 이 클래스는 인터섹션 타입을 표현하는 데 사용됩니다. 인터섹션 타입은 여러 타입을 조합하여 하나의 타입을 만드는 것을 의미합니다.

ReflectionIntersectionType::getTypes 메소드는 인터섹션 타입의 구성된 타입을 반환합니다.

예제


#hostingforum.kr
php

use ReflectionClass;

use ReflectionIntersectionType;



class User {

    public function __construct(public string $name, public int $age) {}

}



class Admin extends User {

    public function __construct(public string $name, public int $age, public string $role) {

        parent::__construct($name, $age);

    }

}



$reflectionClass = new ReflectionClass(Admin::class);

$reflectionIntersectionType = $reflectionClass->getIntersectionType();



// 인터섹션 타입의 구성된 타입을 반환합니다.

$types = $reflectionIntersectionType->getTypes();



foreach ($types as $type) {

    echo $type->getName() . "
";

}



이 예제에서는 Admin 클래스가 User 클래스를 상속하고 있습니다. Admin 클래스는 User 클래스의 속성을 모두 상속하고, 추가로 role 속성을 추가하고 있습니다.

ReflectionClass::getIntersectionType 메소드를 사용하여 Admin 클래스의 인터섹션 타입을 가져옵니다.

그런 다음, ReflectionIntersectionType::getTypes 메소드를 사용하여 인터섹션 타입의 구성된 타입을 가져옵니다.

이러한 타입은 User 클래스와 Admin 클래스의 타입입니다.

결과


#hostingforum.kr


User

Admin



결론


ReflectionIntersectionType::getTypes 메소드는 인터섹션 타입의 구성된 타입을 반환합니다. 이 메소드는 PHP 8.0 버전부터 사용할 수 있습니다.

이 예제에서는 Admin 클래스의 인터섹션 타입을 가져와 구성된 타입을 출력하는 것을 보여주었습니다.

이 메소드는 타입 검사와 관련된 다양한 문제를 해결하는 데 도움이 될 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 280 페이지

검색

게시물 검색