Danyloff

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

Заключение

Использование перечислений может значительно улучшить читаемость и поддерживаемость вашего кода. Они позволяют определить ограниченный набор значений, которые могут быть использованы для конкретных переменных, что делает ваш код более явным и легко понятным.


Так же интересно

Шаблон Service Layer с примерами на PHP

Шаблон Service Layer - это популярный подход к организации бизнес-логики в приложении. Он позволяет разделить код, отвечающий за работу с данными, и код,...