W3docs

is_null()

A função is_null() do PHP verifica se uma variável é null. Veja sintaxe, exemplos e diferenças em relação a isset() e empty().

Introdução

is_null() é uma função nativa do PHP que retorna true quando uma variável possui o valor null, e false caso contrário. null é o tipo especial "sem valor" do PHP — representa uma variável que foi explicitamente esvaziada, recebeu o valor null ou nunca recebeu nenhum valor. Esta página aborda a sintaxe, o que is_null() captura (e o que não captura), como ela difere de isset() e empty(), e quando preferir a comparação === null.

Sintaxe

is_null(mixed $value): bool

A função aceita um argumento, $value, e retorna um boolean:

EntradaRetorna
nulltrue
Qualquer outro valor — 0, "", "0", false, []false

Uma fonte comum de bugs é assumir que valores "vazios" são null. Não são: is_null() é estrita, portanto 0, a string vazia e false retornam false.

Exemplo básico

php— editable, runs on the server

Observação: ao usar echo, o PHP converte true para 1 e false para uma string vazia, por isso a segunda linha não imprime nada. Para ver os valores boolean claramente, use var_dump() em vez de echo.

Null não é o mesmo que vazio

Este é o mal-entendido mais frequente. Apenas null é null — valores que simplesmente parecem vazios não são:

<?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)
?>

Se você quiser capturar todos esses casos "vazios" de uma vez, use empty(). Use is_null() somente quando quiser verificar especificamente se "o valor é literalmente null".

Um caso de uso prático

is_null() se destaca quando um valor é genuinamente opcional e null é um marcador significativo de "não fornecido" — por exemplo, uma coluna de banco de dados ou um campo de API que pode 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

No PHP moderno, is_null($var) e $var === null são funcionalmente idênticos — ambos são verificações estritas de null:

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

A forma === null é geralmente preferida em bases de código modernas: evita uma chamada de função (pequena vantagem de desempenho), é lida de forma consistente com outras comparações estritas e funciona em locais onde uma expressão constante é necessária. Use is_null() quando quiser um teste nomeado e chamável — por exemplo como callback: array_filter($items, 'is_null').

Atenção: variáveis indefinidas

is_null() retorna true para uma variável que nunca foi definida, mas também emite um aviso de Undefined variable:

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

Se a variável pode não existir, verifique primeiro com isset()isset() retorna false para variáveis indefinidas e null, e nunca gera um aviso. Use is_null() somente em variáveis que você sabe que estão definidas.

Conclusão

is_null() é um teste preciso e estrito para o valor null. Use-a quando null tem um significado específico no seu código e você quer distingui-lo de 0, "" ou false. Para verificações do tipo "está ausente ou vazio em algum sentido", prefira isset() ou empty(), e para inspecionar o tipo real de um valor consulte gettype() e tipos de dados PHP.

Prática

Prática
O que a função is_null faz no PHP?
O que a função is_null faz no PHP?
Was this page helpful?