Как получить тип, поддерживаемый 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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