[200 vues] 2022-04-19 Emmanuel Orchanian
NOTE : cet article a été affiché dans sa langue originale.
Parlons des couples
Les couples sont constamment utilisés en informatique, par exemple
prénom = Alex
Le booléen classique
Un booléen est comme un carton qui ne pourrait que contenir
que deux valeurs : VRAI ou FAUX
On peux aussi le comparer à d'autres types d'états opposés
Dans certains langages ils sont appelés "ouinon" ou "interrupteurs".
- vrai faux
- oui non
- vérité mensonge
- positif négatif
- + -
- on off
- gauche droite
- allumé éteint
- activé désactivé
- 0 1
- jour nuit 😁
Le problème du booléen classique
Supposons qu'on veuille faire la liste des permis de plusieurs personnes
- A-t-elle le permis auto ?
- A-t-elle le permis moto ?
Nous aurons alors deux booléens à paramétrer sur oui ou non
Supposons à présent qu'on veuille rajouter d'autres permis...
Il va falloir rajouter :
- A-t-elle le permis auto ?
- A-t-elle le permis moto ?
- A-t-elle le permis camion ?
- A-t-elle le permis bateau ?
- A-t-elle le permis remorque ?
Et c'est embêtant de devoir tout paramétrer pour ces nouvelles données...
À la place, on préfère la technique suivante :
Le booléen absence/présence
Dans ce cas, si la personne a un permis, alors on crée un couple qui associe le permis à... rien du tout.
L'astuce consistera a vérifier si le couple existe, peu importe de la valeur, le couple existe point barre. S'il n'existe pas, on considère que c'est faux.
Schéma
Exemple d'application
Les "attributs booléens" en HTML
En HTML, les attributs sont des couples sous cette forme nom="valeur". Certains attributs appelés "attributs HTML booléens" n'ont pas de valeur, soit ils existent, soit ils n'existent pas.
Par exemple, l'attribut HTML booléen selected désigne quel option est sélectionnées par défaut :
<select>
<option value="nord">Nord</option>
<option value="est">Est</option>
<option value="sud" selected >Sud</option>
<option value="ouest">Ouest</option>
</select>
Les checkbox dans les formulaires HTML
Les cases à cocher (checkbox) on un comportement de booléens absence/présence.
- Si une case est cochée, elle envoi son
name, inutile de lui attribuer une valeur, inutile aussi de vérifier sa valeur. Si vous ne mettez rien, la valeur par défaut selon les navigateurs majoritaires est "on", mais on s'en fiche on ne le vérifiera pas, puis je déconseille de le vérifier. - Si une case n'est pas cochée, elle n'envoie rien, comme si elle n'avait jamais été créée. 😥
Essayez par vous-même : validez et observez les comportements de l'URL
<form action="#" method="get" class="big">
<input type="checkbox" name="rouge" id="rouge" value="ROUGE"> <label for="rouge">Rouge</label> <br>
<input type="checkbox" name="bleu" id="bleu" value=""> <label for="bleu">Bleu</label> <br>
<input type="checkbox" name="orange" id="orange" > <label for="orange">Orange</label> <br>
<button type="submit">VALIDER</button>
</form>
Danger d'amalgame
Si vous êtes fatigué ou si vous travaillez avec vos collègues, il faut éviter de confondre ces deux types d'utilisation de booléen, car on pourrait alors mettre la valeur "oui" ou "non" dans le carton du booléen, et lors de la vérification ça fera dans les deux cas "oui"...
Personnellement je recommande de mettre un texte vide pour valeur d'un booléen absence/présence. Et je déconseille de mettre quelque chose qui sous-entend "oui" car ça embrouille.
Liens
Merci d'avoir lu !
Si en général vous avez une question, une curiosité, n'hésitez pas me contacter.