logo oujood
🔍

La fonction is_null() en PHP : Détecter et Vérifier les Variables NULL

Maîtrisez la vérification de nullité en PHP avec is_null() : syntaxe, cas d'usage, différences avec isset() et empty(), exemples pratiques commentés

OUJOOD.COM

PHP cours tutorial

Comprendre et utiliser la fonction is_null() en PHP

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

La fonction is_null() est un outil fondamental en PHP qui permet de vérifier si une variable contient la valeur NULL. Cette fonction est essentielle pour le débogage de code PHP, la validation des données et la gestion des variables non initialisées. Contrairement à isset() ou empty(), is_null() effectue un test strict de nullité et retourne TRUE uniquement si la variable vaut explicitement NULL.

Syntaxe de la fonction is_null()

Syntaxe complète :

bool is_null(mixed $var)

La fonction is_null() vérifie de manière stricte si la variable fournie en paramètre correspond au type NULL en PHP. Elle renvoie un booléen : TRUE si la variable vaut NULL, FALSE dans tous les autres cas.

Paramètres et valeur de retour

Paramètre $var : La variable à tester pour la nullité. Ce paramètre accepte n'importe quel type de données PHP (integer, string, array, object, resource, ou NULL).

Valeur retournée : Un booléen (boolean) - TRUE si $var est NULL, FALSE si $var contient n'importe quelle autre valeur, même 0, false, ou une chaîne vide.

Différence entre is_null(), isset() et empty()

Il est crucial de comprendre les différences entre is_null() isset() et empty() en PHP :

  • is_null() : Retourne TRUE uniquement si la variable vaut NULL
  • isset() : Retourne FALSE si la variable est NULL ou non définie
  • empty() : Retourne TRUE pour NULL, 0, false, "", "0", array() et variables non définies

Exemple pratique de is_null() avec variable NULL

Exemple :    📋 Copier le code

<?php
// Activation du rapport d'erreurs complet pour le débogage
error_reporting(E_ALL);

// Déclaration d'une variable explicitement NULL
$foo = NULL;

// Test de is_null() sur une variable non définie et une variable NULL
// $inexistent n'existe pas, donc génère une Notice
// $foo vaut NULL, donc is_null() retourne TRUE
var_dump(is_null($inexistent), is_null($foo));

?>

Résultat affiché :

Notice: Undefined variable: inexistent in (file) on line 6

bool(true)

bool(true)

Dans cet exemple de vérification de variable NULL en PHP, on observe que is_null() retourne TRUE pour une variable non définie (avec Notice) et pour une variable explicitement définie à NULL.

Exemple avancé : Comparaison des fonctions de test

Exemple :    📋 Copier le code

<?php
// Démonstration des différences entre is_null(), isset() et empty()

// Test 1 : Variable NULL
$variable_null = NULL;
echo "Variable NULL : <br>";
echo "is_null() : " . (is_null($variable_null) ? 'TRUE' : 'FALSE') . "<br>";
echo "isset() : " . (isset($variable_null) ? 'TRUE' : 'FALSE') . "<br>";
echo "empty() : " . (empty($variable_null) ? 'TRUE' : 'FALSE') . "<br><br>";

// Test 2 : Variable avec valeur 0
$variable_zero = 0;
echo "Variable = 0 : <br>";
echo "is_null() : " . (is_null($variable_zero) ? 'TRUE' : 'FALSE') . "<br>";
echo "isset() : " . (isset($variable_zero) ? 'TRUE' : 'FALSE') . "<br>";
echo "empty() : " . (empty($variable_zero) ? 'TRUE' : 'FALSE') . "<br><br>";

// Test 3 : Variable chaîne vide
$variable_vide = "";
echo "Variable chaîne vide : <br>";
echo "is_null() : " . (is_null($variable_vide) ? 'TRUE' : 'FALSE') . "<br>";
echo "isset() : " . (isset($variable_vide) ? 'TRUE' : 'FALSE') . "<br>";
echo "empty() : " . (empty($variable_vide) ? 'TRUE' : 'FALSE') . "<br>";

?>

Cas d'usage pratiques de is_null()

Exemple :    📋 Copier le code

<?php
// Cas d'usage 1 : Validation de paramètres de fonction
function traiterDonnees($donnees, $options = NULL) {
    // Vérifier si des options ont été fournies
    if (is_null($options)) {
        echo "Utilisation des options par défaut<br>";
        $options = ['mode' => 'standard', 'debug' => false];
    }
    
    // Traitement des données avec les options
    return "Données traitées avec le mode : " . $options['mode'];
}

echo traiterDonnees("test") . "<br><br>";

// Cas d'usage 2 : Vérification de résultats de requêtes
function rechercherUtilisateur($id) {
    // Simulation d'une recherche en base de données
    $resultat = NULL; // Utilisateur non trouvé
    
    if (is_null($resultat)) {
        return "Utilisateur #$id introuvable";
    }
    return $resultat;
}

echo rechercherUtilisateur(999) . "<br><br>";

// Cas d'usage 3 : Initialisation conditionnelle
$cache = NULL;

if (is_null($cache)) {
    echo "Initialisation du cache...<br>";
    $cache = ['data' => [], 'timestamp' => time()];
}

print_r($cache);

?>

Bonnes pratiques avec is_null()

Pour une utilisation optimale de is_null() en PHP, suivez ces recommandations :

  • Utilisez is_null() pour des tests stricts de nullité quand vous devez distinguer NULL des autres valeurs fausses (0, false, "")
  • Préférez isset() pour vérifier l'existence et la non-nullité d'une variable simultanément
  • Combinez is_null() avec error_reporting() lors du développement pour détecter les variables non initialisées
  • Utilisez l'opérateur de coalescence null (??) en PHP 7+ comme alternative moderne pour gérer les valeurs NULL
  • Documentez vos intentions lors de l'utilisation de is_null() pour faciliter la maintenance du code PHP

Alternatives modernes à is_null() en PHP 7+

Exemple :    📋 Copier le code

<?php
// PHP 7+ : Opérateur de coalescence null (??)
$valeur = NULL;

// Ancienne méthode avec is_null()
$resultat1 = is_null($valeur) ? "Valeur par défaut" : $valeur;

// Nouvelle méthode avec ?? (plus concise)
$resultat2 = $valeur ?? "Valeur par défaut";

echo "Résultat 1 : $resultat1<br>";
echo "Résultat 2 : $resultat2<br><br>";

// PHP 7.4+ : Null safe operator avec propriétés d'objets
class Utilisateur {
    public $profil = NULL;
}

$user = new Utilisateur();

// Avec is_null() : vérification explicite nécessaire
if (!is_null($user->profil) && !is_null($user->profil->nom)) {
    echo $user->profil->nom;
}

// Avec ?? : plus élégant et sûr
echo $user->profil->nom ?? "Profil non défini";

?>


Cours precedent:
  La fonction is_int()

    Fonctions de manipulation des variables en PHP

 Cours suivant:
La fonction is_numeric()   

Par carabde | Mis à jour le 19 novembre 2025