L3 Info : PHP et Applications Web
 
◃  Ch. 9 Extra ball !  ▹
 

Énumérations avec valeurs (Backed Enumeration)

  • Par défaut, les énumérations n'ont pas de valeurs scalaires.
  • Ce ne sont que de simples objets singletons.
  • Attribution d'une valeur scalaire à chaque élément de l'énumération :
    • Exemple
      enum Diplome : string {
        case Licence = 'L';
        case Master = 'M';
        case Doctorat = 'D';
      }
  • Accepte uniquement des valeurs entières ou des chaînes de caractères
  • Toutes les valeurs doivent être du même type
  • Tous les cas doivent avoir une valeur
  • Toutes les valeurs d'une énumération doivent être distinctes
  • Les backed enumeration disposent d'une propriété supplémentaire (value) disponible en lecture seule.
    echo Diplome::Licence->value;
  • Deux méthodes issues de l'interface BackedEnum sont disponibles :
    • from(int|string): self prend un scalaire et retourne le cas correspondant ou génère une erreur ValueError en cas d'échec
    • tryFrom(int|string): ?self prend un scalaire et renvoie le cas correspondant ou null par défaut