Enum в PHP
- ·
-
Enum (перечисление) — это тип данных, который позволяет определять набор значений, которые могут быть использованы для конкретных переменных. Enum в PHP был введен с версии 8.1 и является одним из новых функциональных возможностей этой версии.
Enum можно использовать вместо набора констант, что позволяет сделать код более читаемым и удобным для поддержки. Давайте рассмотрим пример.
Первым шагом необходимо объявить новый тип данных enum, используя ключевое слово enum, за которым следует имя типа данных и список значений в фигурных скобках
enum DayOfWeek {
case MONDAY;
case TUESDAY;
case WEDNESDAY;
case THURSDAY;
case FRIDAY;
case SATURDAY;
case SUNDAY;
}
Затем можно создать переменную, используя определенный тип данных
$day = DayOfWeek::MONDAY;
Теперь мы можем использовать переменную $day в нашем коде, например
if ($day == DayOfWeek::MONDAY) {
echo "Today is Monday!";
} else {
echo "Today is not Monday.";
}
Можно также использовать switch-конструкцию для обработки значений перечисления
switch ($day) {
case DayOfWeek::MONDAY:
echo "Today is Monday!";
break;
case DayOfWeek::TUESDAY:
echo "Today is Tuesday!";
break;
case DayOfWeek::WEDNESDAY:
echo "Today is Wednesday!";
break;
case DayOfWeek::THURSDAY:
echo "Today is Thursday!";
break;
case DayOfWeek::FRIDAY:
echo "Today is Friday!";
break;
case DayOfWeek::SATURDAY:
echo "Today is Saturday!";
break;
case DayOfWeek::SUNDAY:
echo "Today is Sunday!";
break;
}
Кроме того, перечисления могут содержать дополнительные свойства. Например, можно определить строковое значение для каждого элемента перечисления
enum Color {
case RED = 'FF0000';
case GREEN = '00FF00';
case BLUE = '0000FF';
}
$color = Color::GREEN;
echo $color->value; // выведет '00FF00'
Также можно определять методы внутри перечислений
enum MathConstants {
const PI = 3.14;
const E = 2.71;
public static function square($number)
{
return $number * $number;
}
}
echo MathConstants::square(5); // выведет 25
Заключение
Использование перечислений может значительно улучшить читаемость и поддерживаемость вашего кода. Они позволяют определить ограниченный набор значений, которые могут быть использованы для конкретных переменных, что делает ваш код более явным и легко понятным.