isset
isset() est une fonction PHP qui vérifie si une variable est définie et qu’elle n’est pas égale à null.
Exemple pour une variable définie:
$definie = "Foo";
if (isset($definie)) {
echo "La variable est définie.";
} else {
echo "La variable n'est pas définie.";
}
// Output: "La variable est définie."
Exemple pour une variable non définie:
$nonDefinie;
if (isset($nonDefinie)) {
echo "La variable est définie.";
} else {
echo "La variable n'est pas définie.";
}
// Output: "La variable n'est pas définie."
Warning: Undefined variable
Vous avez sûrement déjà rencontré l’erreur suivante :
$nom;
echo $nom;
Warning: Undefined variable $nom…
L’utilisation d’isset permet de régulariser ce warning.
if (isset($nom)) {
echo $nom;
}
De même isset() est nécessaire pour réutiliser une variable détruite via unset() sans warning.
$maVariable = "Foo";
unset($maVariable);
if (isset($maVariable)) {
echo "La variable est définie.";
} else {
echo "La variable n'est pas définie.";
}
// Output: "La variable n'est pas définie."
Vérifier avant tout l’existence avec isset()
Si la variable est définie on peut se demander l’intérêt d’utiliser isset(), par exemple :
$a = null;
if (!isset($a)) {
echo "vide";
}
pourrait être vérifié simplement avec :
if ($a === null) {
echo "vide";
}
ou
if (!$a) {
echo "vide";
}
Il est vrai que lorsque la variable est définie isset apporte peu de différence. En revanche lorsque la variable n’est pas définie:
$a;
if ($a === null) {
echo "vide";
}
Le code ci-dessus écrira “vide” (une variable non définie a implicitement la valeur null) mais avec un warning Warning undefined variable $a.
Il est de ce fait préférable d’utiliser isset quand la variable est possiblement non définie.
Warning: Undefined array key
Utilisons isset pour vérifier l’existence d’un élément dans un tableau associatif.
// Un tableau avec des éléments
$tableau = array(
"cle1" => "valeur1",
"cle2" => "valeur2"
);
// Vérifie si l'élément "cle1" existe dans le tableau
if (isset($tableau["cle1"])) {
echo "L'élément 'cle1' existe dans le tableau.";
} else {
echo "L'élément 'cle1' n'existe pas dans le tableau.";
}
// Sortie: L'élément "cle1" existe dans le tableau.
Lorsque l’on demande une clé qui n’existe pas
echo $tableau["cle3"];
Warning: Undefined array key
Pour régulariser le warning on utilise de nouveau isset().
if (isset($tableau["cle3"])) {
echo "L'élément 'cle3' existe dans le tableau.";
} else {
echo "L'élément 'cle3' n'existe pas dans le tableau.";
}
// Output: L'élément "cle3" n'existe pas dans le tableau.