Madame Lou s'inquiète : tôt ou tard, Gaston rangera son article d'orage dans la rubrique « Meteo », sans accent, et Odette le sien dans « fête du Village ». Une rubrique écrite à la main finit toujours par avoir dix orthographes. La gazette n'en a que trois, et PHP sait représenter une liste fermée de choix : une énumération.
Votre mission
- Déclarez une énumération
Rubriqueaux valeurs de typestring, avec trois cas :FeteDuVillage('fete-du-village'),Meteo('meteo') etFaitsDivers('faits-divers'). - Ajoutez-lui une méthode
libelle(): string, qui renvoie avecmatchle nom lisible : « Fête du village », « Météo », « Faits divers ». - La propriété
rubriqued'Articledevient uneRubrique, et chaque article reçoit la sienne :rubrique: Rubrique::Meteo. - Dans
afficherArticle(), affichez le libellé de la rubrique, toujours en majuscules.
Rappel
Une énumération déclare toutes les valeurs possibles d'un type, et aucune autre. Rubrique::Meteo ne peut pas être mal orthographiée sans que PHP le signale. Comme une classe, elle peut avoir des méthodes. Dans une méthode, $this est le cas sur lequel on l'appelle : pour Rubrique::Meteo->libelle(), $this vaut Rubrique::Meteo. self, lui, désigne le type Rubrique tout entier, pas un cas. match ($this) compare donc le cas courant à chaque branche (Rubrique::Meteo => 'Météo', qu'on peut aussi écrire self::Meteo à l'intérieur de l'énumération), et renvoie le résultat de la première qui correspond. Comme les trois cas sont couverts, il n'y a pas besoin de branche default.