Код: Выделить всё
enum MainType: string
{
case Full = 'a';
case Major = 'b';
case Minor = 'c';
}
var_dump(MainType::tryFrom('a')); // MainType::Full
var_dump(MainType::tryFrom('d')); // null
Код: Выделить всё
enum MainType
{
case Full;
case Major;
case Minor;
}
$name = (MainType::Full)->name
var_dump(name); // (string) Full
enum MainType
{
case Full;
case Major;
case Minor;
public static function tryFromName(string $name): ?static
{
foreach (static::cases() as $case) {
if ($case->name === $name) {
return $case;
}
}
return null;
}
}
$name = (MainType::Full)->name
var_dump(name); // (string) Full
var_dump(MainType::tryFromName($name)); // MainType::Full
< /code>
Это работает, однако он противоречит интуитивно понятно, чтобы включить цикл FOREACH, чтобы пройти все возможности, просто для создания перечисления. < /p>
Поэтому вопрос в Как правильный способ получить перечисление в PHP от имени.
Подробнее здесь: https://stackoverflow.com/questions/710 ... ame-in-php
Мобильная версия