Тип данных enum в PHP 8

Тип данных enum в PHP 8

Тип данных enum в PHP 8

Доброго времени суток! Сегодня мы поговорим с Вами о том, что такое перечисления в PHP 8.

Перечисления (enum) были введены в PHP 8 как новый тип данных, который позволяет определить набор именованных значений, представляющих отдельные элементы фиксированного множества. Перечисления обеспечивают улучшение читаемости кода и снижение вероятности ошибок.

Объявление перечислений:

Перечисление объявляется с использованием ключевого слова enum. Каждый элемент перечисления — это константное значение с ассоциированным именем:

// перечисление - Статус

enum Status {

    case PENDING;

    case APPROVED;

    case REJECTED;

}

Использование перечислений:

После объявления вы можете использовать значения перечисления в своем коде:

function processStatus(Status $status) {

    switch ($status) {

        case Status::PENDING:

            return "Ждет выполнения";

        case Status::APPROVED:

            return "Принято";

        case Status::REJECTED:

            return "Отклонено";

    }

}



$status = Status::APPROVED;

echo processStatus($status);  // Вывод: Принято!

Свойства перечислений:

У перечислений могут быть связанные значения, что делает их более удобными в использовании:

enum UserRole: string {

    case ADMIN = 'admin';

    case USER = 'user';

}

Перебор элементов перечислений:

Значения перечисления можно легко перебрать в цикле:

foreach (UserRole::cases() as $role) {

    echo $role . PHP_EOL;

}

// Вывод:

// ADMIN

// USER

Перечисления и оператор switch:

Перечисления легко интегрируются с операторами switch:

function processRole(UserRole $role) {

    switch ($role) {

        case UserRole::ADMIN:

            return "Предоставлены права администратора.";

        case UserRole::USER:

            return "Обычный пользователь.";

    }

}



$userRole = UserRole::ADMIN;

echo processRole($userRole);  // Вывод: Предоставлены права администратора.

Подсказки по типам:

Перечисления могут использоваться для подсказок по типам (typehint) в параметрах функций/методов:

function updateUserRole(UserRole $newRole) {

    // Код для обновления роли пользователя

}



updateUserRole(UserRole::USER);

Преимущества:

  1. Читаемость: Перечисления делают код более читаемым, предоставляя осмысленные имена значениям.
  2. Поддерживаемость: Легко добавлять или удалять значения без влияние на другие части кода.
  3. Безопасность типов: Перечисления помогают обнаруживать ошибки, связанные с типами, на этапе разработки.
  4. Автозаполнение: Среды разработки могут предоставлять автозаполнение для значений перечисления.

Заключение:

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

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий