Astuce PHP // Traiter correctement la validation des booléens

En PHP la gestion précise des booléens peut s’avérer plus complexe que prévu.

De manière générale, il peut sembler simple de manipuler des valeurs booléennes lorsque vous travaillez uniquement avec votre propre code, en vous assurant de bien typer vos variables en booléen.

Cependant, la complexité augmente lorsque des sources externes entrent en jeu. Que vous traitiez les données de fichiers .env ou les informations de formulaires, il est crucial de vous assurer que les valeurs booléennes sont correctes et cohérentes.

Lors de ces interactions, vous ne recevrez plus des valeurs strictement typées en booléen, mais des textes contenant des "true" / "false", voir parfois des "on" / "off" et d’autres formats similaires.

Dans cet article, nous explorerons l’utilisation de la fonction filter_var en PHP pour simplifier la validation et le traitement des booléens. En mettant l’accent sur les problématiques liées à leurs validations.

Image de l'article Traiter correctement la validation des booléens

Pourquoi valider les booléens ?

Les données booléennes sont couramment utilisées pour gérer les états, les autorisations et les configurations dans une application. Une validation inadéquate peut entraîner des erreurs de logique, des failles de sécurité et des comportements inattendus.

Les valeurs booléennes externes

Lorsque vous manipulez des données booléennes provenant de sources externes, comme des fichiers de configuration ou des formulaires web, ces dernières ne sont pas toujours présentées de manière standard.

Vous pouvez ainsi rencontrer les formes suivantes : "true", "false", "1", "0", "yes", "no", "on", "off", "True", "False", "Yes", "No", "On", "Off", true, et false.

Ces variations peuvent rendre la validation des booléens complexe, mais c’est là qu’intervient la fonction filter_var.

filter_var() pour valider les booléens

La fonction filter_var en PHP offre une solution élégante pour valider et traiter les booléens, quelle que soit leur forme. Voici comment vous pouvez l’utiliser :

$maVariable = "true"; // Cette variable peut contenir des valeurs comme "true", "1", "yes", "On", etc.

if (filter_var($maVariable, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) !== null) {
    // La valeur est un booléen valide (true ou false).
    echo "C'est un booléen valide !";
} else {
    // La valeur n'est pas un booléen valide.
    echo "Ce n'est pas un booléen valide.";
}

Avec cette méthode, filter_var détectera si la valeur est un booléen valide, quelle que soit sa forme et simplifiera le processus de validation.

  • Le paramètre FILTER_VALIDATE_BOOLEAN se charge de retourner true ou false en fonction de l’analyse du contenu de $maVariable.
  • Le paramètre FILTER_NULL_ON_FAILURE quant à lui permettra de renvoyer null pour toutes les valeurs non booléennes.

Mise en pratique avec des données de formulaires ou de .env

// Utilisation suite à un formulaire contenant une case à cocher
$valeurCaseACocher = $_POST['case_a_cocher'];
if (filter_var($valeurCaseACocher, FILTER_VALIDATE_BOOLEAN)) {
    // La case à cocher est cochée
    // Votre code ici...
} else {
    // La case à cocher n'est pas cochée
    // Votre code ici...
}

// Lecture d'une valeur booléenne depuis un fichier .env
$parametreActif = getenv('PARAMETRE_ACTIF');
if (filter_var($parametreActif, FILTER_VALIDATE_BOOLEAN)) {
    // Le paramètre est actif
    // Votre code ici...
} else {
    // Le paramètre est inactif
    // Votre code ici...
}

Référence

Découvrez la documentation PHP sur filter_var().

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.