Bardzo szybka lekcja – poznajemy Enum, który zawitał do świata PHP w wersji 8.1. Do dzieła!

Oto nasz enum:

<?php 
enum PageType : int {
    case SINGLE = 1;
    case LIST = 2;
    case CONTACT = 3;
}

Musimy umieścić odpowiednią adnotację jaki typ wartości jest zwracany przez case – nawet jeśli nie mamy zadeklarowanego strict_types na 1.

Teraz użyjmy go sobie w jakimś mega-łatwym przykładzie:

if(!isset($_GET['page']))
{
    echo "<h1>Main Page</h1>";
    exit;
}
$page = (int)$_GET['page'];

if($page === PageType::SINGLE->value){
    echo "<h1>Single Page</h1>";
} elseif($page == PageType::LIST->value){
    echo "<h1>List Page</h1>";
} elseif($page == PageType::CONTACT->value){
    echo "<h1>Contact Page</h1>";
} else {
    die("Page not found");
}

Minimum bezpieczeństwa mamy zapewnione, bowiem get jest rzutowany do typu int.

To tylko przykład, ale obrazuje jak coś mało czytelnego może stać się czytelniejsze dzięki enumowi – z jednej strony chcemy pracować na liczbach, z drugiej chcemy uniknąć sytuacji, w której nie wiemy, nad czym pracujemy.

Oczywiście to nie jedyne zalety enuma. Enum może być typem, jakiego wymagamy w jakiejś funkcji albo polu. Lepiej poznamy enumy w przyszłości!