W3docs

is_null()

La fonction is_null() en PHP vérifie si une variable est null. Découvrez sa syntaxe, ses différences avec isset() et empty(), et ses cas d'usage.

Introduction

is_null() est une fonction PHP intégrée qui retourne true lorsqu'une variable contient la valeur null, et false dans tous les autres cas. null est le type spécial « sans valeur » de PHP — il représente une variable qui a été explicitement vidée, assignée à null, ou à laquelle aucune valeur n'a jamais été donnée. Cette page couvre la syntaxe, ce que is_null() détecte (et ne détecte pas), ses différences avec isset() et empty(), et quand préférer la comparaison === null.

Syntaxe

is_null(mixed $value): bool

Elle prend un argument, $value, et retourne un booléen :

EntréeRetourne
nulltrue
Toute autre valeur — 0, "", "0", false, []false

Une source fréquente de bugs est de supposer que les valeurs « vides » sont null. Ce n'est pas le cas : is_null() est stricte, donc 0, la chaîne vide et false retournent tous false.

Exemple de base

php— editable, runs on the server

Remarque : lors d'un echo, PHP convertit true en 1 et false en une chaîne vide, c'est pourquoi la deuxième ligne n'imprime rien. Pour voir clairement les valeurs booléennes, utilisez var_dump() plutôt que echo.

Null n'est pas la même chose que vide

C'est le malentendu le plus fréquent. Seul null est null — les valeurs qui paraissent vides ne le sont pas :

<?php
var_dump(is_null(null));   // bool(true)
var_dump(is_null(0));      // bool(false)
var_dump(is_null(""));     // bool(false)
var_dump(is_null(false));  // bool(false)
var_dump(is_null([]));     // bool(false)
?>

Si vous souhaitez capturer tous ces cas « vides » en une seule fois, utilisez empty() à la place. Utilisez is_null() uniquement quand vous voulez spécifiquement dire « la valeur est littéralement null ».

Un cas d'usage pratique

is_null() est particulièrement utile quand une valeur est véritablement optionnelle et que null représente un marqueur « non fourni » — par exemple une colonne de base de données ou un champ d'API qui peut être absent :

<?php
function greet(?string $middleName): string {
    if (is_null($middleName)) {
        return "No middle name on file.";
    }
    return "Middle name: $middleName";
}

echo greet(null) . "\n";      // No middle name on file.
echo greet("Marie") . "\n";   // Middle name: Marie
?>

is_null() vs === null

En PHP moderne, is_null($var) et $var === null sont fonctionnellement identiques — les deux effectuent une vérification stricte de null :

<?php
$x = null;
var_dump(is_null($x) === ($x === null));  // bool(true)
?>

La forme === null est généralement préférée dans les bases de code modernes : elle évite un appel de fonction (un léger avantage en performance), se lit de manière cohérente avec d'autres comparaisons strictes, et fonctionne dans les endroits où une expression constante est requise. Optez pour is_null() quand vous souhaitez un test nommé et appelable — par exemple comme callback : array_filter($items, 'is_null').

Piège : les variables non définies

is_null() retourne true pour une variable qui n'a jamais été définie, mais émet également un avertissement Undefined variable :

<?php
var_dump(is_null($neverSet));  // Warning: Undefined variable ... then bool(true)
?>

Si la variable peut ne pas exister du tout, vérifiez d'abord avec isset()isset() retourne false pour les variables non définies et les variables null, et ne génère jamais d'avertissement. Utilisez is_null() uniquement sur des variables dont vous savez qu'elles sont définies.

Conclusion

is_null() est un test précis et strict de la valeur null. Utilisez-la quand null a une signification spécifique dans votre code et que vous souhaitez la distinguer de 0, "" ou false. Pour des vérifications de type « cette valeur est-elle manquante ou vide en quelque sens que ce soit », préférez isset() ou empty(), et pour inspecter le type réel d'une valeur, consultez gettype() et les types de données PHP.

Pratique

Pratique
Que fait la fonction is_null en PHP ?
Que fait la fonction is_null en PHP ?
Was this page helpful?