Как получить тип, поддерживаемый Enum? ⇐ Php

Кемеровские программисты php общаются здесь
Anonymous
Как получить тип, поддерживаемый Enum?

Сообщение Anonymous »

Мне интересно, как лучше всего получить тип, поддерживаемый Enum:

Код: Выделить всё

enum E: string {
case a = "A";
case b = "B";
}
У меня есть функция, которая получает имя класса Enum в качестве параметра, и внутри функции мне нужно проверить, поддерживается ли тип int или string< /code> или это не поддерживаемое перечисление.

Код: Выделить всё

//this function can be called like: foo(E::class)
function foo(string $enum) {
// here I need to check if $enum is backed by int or string or nothing
}
Я уже пробовал get_parent_class, однако он не работает, поскольку Backed Enum не наследует обратный тип и представляет собой просто закрытые списки.
/>Я знаю, что могу поместить статическую функцию в определение Enum и вернуть туда тип, но мне интересно, есть ли более общий и элегантный способ?

Подробнее здесь: https://stackoverflow.com/questions/721 ... acked-type

Вернуться в «Php»