W3docs

is_null()

La función is_null() de PHP comprueba si una variable es null. Aprende su sintaxis, diferencias con isset() y cuándo usarla.

Introducción

is_null() es una función integrada de PHP que devuelve true cuando una variable contiene el valor null, y false en caso contrario. null es el tipo especial "sin valor" de PHP — representa una variable que ha sido vaciada explícitamente, a la que se le asignó null o que nunca recibió un valor. Esta página cubre la sintaxis, lo que is_null() detecta (y lo que no), cómo difiere de isset() y empty(), y cuándo usar la comparación === null en su lugar.

Sintaxis

is_null(mixed $value): bool

Acepta un argumento, $value, y devuelve un boolean:

EntradaDevuelve
nulltrue
Cualquier otra cosa — 0, "", "0", false, []false

Una fuente habitual de errores es asumir que los valores "vacíos" son null. No lo son: is_null() es estricta, por lo que 0, la cadena vacía y false devuelven false.

Ejemplo básico

php— editable, runs on the server

Nota: al usar echo, PHP convierte true a 1 y false a una cadena vacía, razón por la que la segunda línea no imprime nada. Para ver los valores booleanos con claridad, usa var_dump() en lugar de echo.

Null no es lo mismo que vacío

Este es el malentendido más frecuente. Solo null es null — los valores que simplemente parecen vacíos no lo son:

<?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 quieres capturar todos esos casos "vacíos" a la vez, usa empty() en su lugar. Usa is_null() solo cuando específicamente quieras decir "el valor es literalmente null".

Un caso de uso práctico

is_null() brilla cuando un valor es genuinamente opcional y null es un marcador significativo de "no proporcionado" — por ejemplo, una columna de base de datos o un campo de API que puede estar ausente:

<?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 moderno, is_null($var) y $var === null son funcionalmente idénticos — ambos son verificaciones estrictas de null:

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

La forma === null es generalmente preferida en bases de código modernas: evita una llamada a función (una pequeña ventaja de rendimiento), se lee de forma consistente con otras comparaciones estrictas y funciona en lugares donde se requiere una expresión constante. Recurre a is_null() cuando quieras una prueba con nombre y que se pueda pasar como callable — por ejemplo como callback: array_filter($items, 'is_null').

Advertencia: variables no definidas

is_null() devuelve true para una variable que nunca fue definida, pero también emite una advertencia Undefined variable:

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

Si la variable podría no existir en absoluto, comprueba primero con isset()isset() devuelve false tanto para variables no definidas como para las que son null y nunca genera una advertencia. Usa is_null() solo en variables que sabes que están definidas.

Conclusión

is_null() es una prueba precisa y estricta del valor null. Úsala cuando null tenga un significado específico en tu código y quieras distinguirlo de 0, "" o false. Para comprobaciones del tipo "¿falta esto o está vacío en algún sentido?", prefiere isset() o empty(), y para inspeccionar el tipo real de un valor consulta gettype() y tipos de datos PHP.

Práctica

Práctica
¿Qué hace la función is_null en PHP?
¿Qué hace la función is_null en PHP?
Was this page helpful?