enum_exists
funkcja
Sprawdza, czy enum o podanej nazwie istnieje. Działa analogicznie do `class_exists`, ale zwraca `true` wyłącznie dla typów wyliczeniowych (enum).
enum_exists(string $enum, bool $autoload = true): bool
enum_exists zwraca true, gdy PHP zna enum o podanej nazwie — po uwzględnieniu przestrzeni nazw. Drugi parametr $autoload decyduje, czy przed sprawdzeniem uruchomić autoloader (domyślnie true). Funkcja zwróci false dla zwykłych klas i interfejsów o tej samej nazwie — w odróżnieniu od class_exists, które dla enumów w PHP 8.1+ też zwraca true. Używaj enum_exists gdy chcesz jednoznacznie stwierdzić, że typ jest enumem.
<?php
declare(strict_types=1);
enum Status
{
case Aktywny;
case Nieaktywny;
}
enum Priorytet: int
{
case Niski = 1;
case Wysoki = 2;
}
var_dump(enum_exists('Status')); // bool(true)
var_dump(enum_exists('Priorytet')); // bool(true)
var_dump(enum_exists('NieIstniejacy')); // bool(false)
// class_exists też zwróci true dla enumów, ale enum_exists jest precyzyjniejszy:
var_dump(class_exists('Status')); // bool(true)
var_dump(enum_exists('Status')); // bool(true) — pewność, że to enum