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!