AsComparableEnumTrait compare un cas à d'autres valeurs par identité : un cas est égal à lui-même et à rien
d'autre — ni à sa valeur, ni à son nom, ni à un cas d'une autre enum qui se trouverait à les partager.
use Phil\Enums\Traits\AsComparableEnumTrait;
enum Priority: int
{
use AsComparableEnumTrait;
case LOW = 1;
case NORMAL = 2;
case URGENT = 3;
}
Une valeur
Priority::URGENT->is(Priority::URGENT);
Priority::URGENT->is(3);
Priority::LOW->isNot(Priority::NORMAL);
Plusieurs valeurs
$escalated = [Priority::NORMAL, Priority::URGENT];
Priority::URGENT->in($escalated);
Priority::LOW->notIn($escalated);
Priority::LOW->equalsOneOf($escalated);
Priority::NORMAL->notEqualsOneOf([Priority::LOW]);
Appartenance à l'enum
Priority::has(Priority::LOW);
Priority::has('LOW');
Priority::doesntHave(2);