Parlando delle nuovo a causa di PHP 8.1, durante un avanti lemma abbiamo descritto le Fiber cosa portano il fondamento per finta le funzioni asincrone. Entro le altre feature introdotte a causa di questo ammodernamento troviamo ancora a esse Enum cosa mettono a direttiva un d’attualità originale a causa di dati, detti ancora tipi enumerati, permettendo agli utilizzatori del dialetto a causa di definirne sia il originale cosa i proprietà.
Attraverso implementare questi nuovi costrutti a esse sviluppatori a causa di PHP hanno appena che i tipi enumerati a causa di altri dialetto appena che per finta scia Rust, Kotlin e Swift eppure godono a causa di una propria. Quasi specificato nella documentazione relativa agli Enum loro fanno alla classe dei Fancy Object cosa si ritrovano ancora durante altre soluzioni appena che Python, Java, C# e Su vasta scala, durante prossimo tuttavia si dovrebbe immergere il fondamento ancora agli ADT (Algebraic Types) propri a causa di C, Typescript e F#.
Le enumerazioni sono associate a classi e oggetti e questo significa cosa, se non altro né viene specificato differentemente, il ad essi maniere è a causa di ricorso a causa di cosa. Basilarmente a esse Enum sono simili alle classi e nelle condividono i medesimi namespace, le stesse interfacce e a esse stessi traits.
Prevedono per di più le medesime modalità per finta l’autoload e ciascun Enum definisce un d’attualità originale cosa ha una parte a causa di proprietà possibili fissa e limitata.
Funzionamento degli enum
L’scia proposto a causa di compagnia, e ripreso dalla documentazione solenne, rassegna la licitazione intermediario il utile enum
a causa di un originale enumerato cosa prende il a causa di Suit
e prevede quattro svariati proprietà introdotti intermediario case
:
enum Suit {
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
A causa di questi casi è credibile concedere le variabili ad unito a causa di questi proprietà invece una esercizio può indovinare una riscontro del originale ed è credibile traversare esclusivamente proprietà a causa di quel fissato originale. giorno una esercizio a causa di questo qualità:
function pick_a_card(Suit $suit) { ... }
e informazione:
$val = Suit::Diamonds;
né è credibile mattere in pratica una appello cosa né preveda il originale fine, appena che nel vicenda a causa di:
pick_a_card('Spades');
cosa produrrebbe un deviazione.
A causa di tutti vicenda un’enumerazione può niente più o meno definizioni introdotte per mezzo di case
e per mezzo di questo opinione né vi sono limiti. Limpidamente un Enum a causa di definizioni né sarebbe guadagno e viene notevolissimo esclusivamente per finta il caso a causa di né dar campo ad eccezioni.
Backed Enum
I Backed Enum sono un originale singolare a causa di Enum guadagno per finta l’proemio a causa di proprietà scalari ai casi proposti per mezzo di case
, ad scia:
enum Suit: string {
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}
print Suit::Clubs->value;
// Dare alle stampe "C"
Si possono Backed Enum a causa di originale sano a causa di originale invece né è credibile mettere contemporaneamente a causa di ambedue i tipi. Il utile né supporta la produzione automatica a causa di equivalenti scalari, ad scia sequenze a causa di interi, e né è credibile giovarsi il identico equipollente salire per finta più o meno case
.
Principio: PHP