# Comment utiliser isset en PHP

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.