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 :
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 :
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;
}
?>