Тип данных 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 предоставляют удобный и выразительный способ работы с фиксированным набором связанных значений. Они улучшают качество кода, уменьшая зависимость от необработанных, потенциально ошибочных значений и поощряя использование осмысленных имен. Перечисления улучшают поддерживаемость кода, делают его более самодокументируемым и способствуют более приятному опыту разработки.

Источник

Shopping Cart