when |
Quand |
|---|---|
| Liquid (Microsoft) | |
Syntaxe
|
{% case variable %} {% when valeur1 %} ... contenu si variable == valeur1 ... {% when valeur2 or valeur3 %} ... contenu si variable == valeur2 OU valeur3 ... {% else %} ... contenu par défaut ... {% endcase %} |
Paramètres
| Nom | Description |
|---|---|
| valeur1 | Ce paramètre permet de définir une valeur à comparer à la variable du bloc case. Le contenu associé est exécuté si la variable correspond exactement à cette valeur. |
| valeur2 ou valeur3 | Ce paramètre permet de spécifier plusieurs valeurs alternatives. Ce bloc sera exécuté si la variable est égale à l'une de ces valeurs (logique OU). |
Description
Cette balise permet de définir une des conditions possibles dans une structure case, exécutée si la correspondance est trouvée.
Remarques
- La balise when fonctionne uniquement à l'intérieur d'un bloc case : La balise when ne peut pas être utilisée seule : elle doit obligatoirement être contenue dans une structure {% case %}. Elle permet d'exécuter un bloc d'instructions si la variable évaluée correspond exactement à la ou aux valeurs définies.
- Permet la comparaison de plusieurs valeurs simultanément : La syntaxe {% when valeur2 or valeur3 %} autorise la comparaison avec plusieurs valeurs alternatives. Cela simplifie les blocs conditionnels complexes qui, autrement, nécessiteraient plusieurs structures {% if %} imbriquées ou répétées.
- Utilise une logique de correspondance stricte (égalité) : La balise when repose sur une égalité stricte entre la variable et la valeur testée. Cela signifie qu'il ne s'agit pas de comparaison plus souple comme dans certains langages (pas de correspondance partielle, ni de condition logique avancée).
- Complémentaire à {% else %} pour une gestion exhaustive : Le bloc {% else %} qui suit les balises when permet d'attraper toutes les autres valeurs non listées, agissant comme un cas par défaut. Cela évite des oublis et garantit une réponse même si aucune condition n'est remplie.
- Lisibilité améliorée par rapport aux blocs if imbriqués : L'utilisation d'un bloc case avec des when successifs est souvent plus lisible et plus facile à maintenir qu'une série de {% if %} / {% elsif %} imbriqués, notamment lorsqu'il faut tester une variable unique contre plusieurs options.
- Peut être utilisé pour générer dynamiquement du contenu spécifique : On peut l'utiliser pour adapter le rendu HTML, changer une couleur, un texte ou un message selon la valeur d'une variable (par exemple selon un rôle utilisateur, un statut de commande ou une langue).
- Idéal dans les scénarios à choix multiples définis : La structure case/when est particulièrement utile lorsqu'on connaît à l'avance un ensemble fixe de valeurs possibles à tester, comme des catégories, des états ou des types d'enregistrement. Elle centralise la logique de contrôle.
- Limité à l'évaluation d'une seule variable par bloc case : Contrairement aux blocs if permettant de tester plusieurs expressions ou des combinaisons logiques, le bloc case associé aux when ne permet de tester qu'une seule variable. Il faut donc adapter sa logique en conséquence pour éviter des cas d'usage inappropriés.
Dernière mise à jour : Mercredi, le 23 Juillet 2025