Erreur Undefined variable

Noter ce cours :

L'erreur Undefined variable signifie que vous n'avez pas initialisé une variable avant de l'utiliser. En clair vous tentez de vous servir d'une variable qui n'existe pas.

L'erreur se présente sous la forme suivante pour une variable $test que je n'ai pas initialisée :

Notice: Undefined variable: test in fichier.php on line X.

L'erreur nous dit que vous tentez d'utiliser une variable inexistante à la ligne X, dans le fichier fichier.php.

Il existe différentes méthodes pour corriger ce problème.

Vous pouvez tout d'abord si vous faites appel à une condition savoir si la variable existe avant d'effectuer cette condition.

Vérifier que la variable existe

Nous allons voir un cas d'école régulièrement programmé, qui peut n'afficher aucune erreur avec un PHP permissif.

Ce bout de code consiste à vérifier si une variable transmise par l'URL ($_GET) vaut une certaine valeur.

Le code incorrect récupérant les valeurs d'un formulaire et souvent vu un peu partout pourrait être le suivant :


<?php 
if($_GET['action'] === 'valider') 
{ 
    //traite l'action si la variable $_GET['action'] vaut "valider". Sinon, si la variable $_GET['action'] n'est pas présente, une erreur sera renvoyée
}
?>

Ici, si la variable $_GET['action'] n'existe pas, vous obtiendrez une erreur d'undefined variable :

Undefined variable in
Undefined variable

Pour corriger cette erreur et vérifier que la variable existe sans avoir un message moche, vous pouvez utiliser la fonction isset() :


<?php 
if(isset($_GET['action']) AND $_GET['action']==='valider') 
{ 
    //traite l'action 
?>

Définir manuellement les variables

Vous pouvez adopter de bonnes pratiques et déclarer vos variables en début de code pour ne plus être concerné(e) par ce problème.


<?php 
    $variable ''; 

    //code
    if($variable != '')    //n'affichera pas d'erreur car la variable existe
    {
        echo 'Ceci est un test :',$variable;
    }
?>

Vous avez aimé cet article intitulé Erreur Undefined variable ? Partagez-le !
Vulgarisation-informatique.com
Cours en informatique & tutoriels