Comment résoudre l'erreur PHP Notice: Undefined variable ?
J'exécute un script PHP et continue de recevoir des erreurs du type :
Notice: Undefined variable: ma_variable in chemin_accès/fichier.php on line XX
Quelles méthodes faut-il utiliser pour résoudre les erreurs PHP Notice: Undefined variable ?
Bien que PHP ne nécessite pas de déclaration de variable, il est recommandé de le faire afin d'éviter certaines failles de sécurité, ou des bogues qui empêcheraient d'attribuer une valeur à une variable.
Ce que PHP fait dans le cas de variables non déclarées, c’est d'envoyer une erreur de très bas niveau, E_NOTICE, qui d'ailleurs n’est même pas signalée par défaut, mais que le manuel recommande d’autoriser pendant le développement.
La solution la plus recommandée pour résoudre l'erreur PHP Notice: Undefined variable est de déclarer vos variables.
- Utilisez des "" (guillemets) quand vous voulez ajouter du contenu alphanumérique, ultérieurement à la variable.
exemple
$variable = "";
- Utilisez un 0 (zéro) quand vous voulez ajouter du contenu numérique, ultérieurement à la variable.
exemple
$variable = 0;
Lorsque vous faites appel à une variable non définie, utilisez isset() ou !empty() avant de l'utiliser :
exemple isset()
$variable = isset($_POST['valeur']) ? $_POST['valeur'] : '';
exemple empty()
$variable = !empty($_POST['valeur']) ? $_POST['valeur'] : '';
Depuis PHP7 vous pouvez utiliser l'opérateur Null coalescent, vous n'aurez alors plus vraiment besoin de déclarer vos variables :
$variable = $_POST['valeur'] ?? '';
Ce qui fonctionne également pour résoudre l'erreur PHP Notice: Undefined variable, mais qui n'est pas recommandé :
- Désactiver E_NOTICE avec
error_reporting(~E_NOTICE)
. - Supprimer l'erreur avec l'opérateur @ devant la variable.