Php passe ma valeur à FALSE alors que la valeur est NULL

Petit nouveau ! | 3 Messages

10 janv. 2019, 08:22

Code : Tout sélectionner

<!DOCTYPE html> Bonjour! J'ai ce code: <html> <head> <title>Notre première instruction : echo</title> <meta charset="utf-8" /> </head> <body> <h2>Affichage de texte avec PHP</h2> <p> <?php $autorisation= NULL; if ($autorisation == TRUE) { include ("test_autorisations/true.php"); } elseif ($autorisation == FALSE) { include ("test_autorisations/false.php"); } else { echo 'Pas de valeur!'; } echo '.<br />'; echo 'La valeur de la variable $autorisation est de ' . $autorisation . '.'; ?> </p> </body> </html>
Je m'attends donc à avoir le choix "pas de valeur" qui s'affiche, mais c'est le choix numéro 2. Je dis que autorisation = NULL, pourquoi nai-je pas le elseif qui s'affiche?

Merci à vous! :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

10 janv. 2019, 10:48

Bonjour,

Il faut utiliser 2 signes égales pour vérifier que le type de variable et la valeur sont les mêmes.
http://php.net/manual/fr/language.opera ... arison.php

Avec seulement 2 signes égales, PHP ne vérifie que la valeur. Or dans ton cas cela ne suffit pas car false, null, 0 ou encore "" (chaine de caractères vide) sont considérés comme identiques si on ne vérifie pas le type.
Quand tout le reste a échoué, lisez le mode d'emploi...