W3docs

is_null()

La funzione is_null() in PHP verifica se una variabile è null o meno. Scopri sintassi, differenze con isset() ed empty() e quando usare === null.

Introduzione

is_null() è una funzione PHP integrata che restituisce true quando una variabile contiene il valore null, e false altrimenti. null è il tipo speciale "nessun valore" di PHP — rappresenta una variabile che è stata esplicitamente svuotata, assegnata a null, o a cui non è mai stato assegnato un valore. Questa pagina tratta la sintassi, cosa rileva (e non rileva) is_null(), come si differenzia da isset() e empty(), e quando usare invece il confronto === null.

Sintassi

is_null(mixed $value): bool

Accetta un argomento, $value, e restituisce un boolean:

InputRestituisce
nulltrue
Qualsiasi altro valore — 0, "", "0", false, []false

Una fonte comune di bug è assumere che i valori "vuoti" siano null. Non lo sono: is_null() è rigorosa, quindi 0, la stringa vuota e false restituiscono tutti false.

Esempio base

php— editable, runs on the server

Nota: quando viene usato con echo, PHP converte true in 1 e false in una stringa vuota, ecco perché la seconda riga non stampa nulla. Per vedere chiaramente i valori boolean, usa var_dump() invece di echo.

Null non è uguale a vuoto

Questo è il malinteso più frequente. Solo null è null — i valori che sembrano semplicemente vuoti non lo sono:

<?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 vuoi intercettare tutti questi casi "vuoti" in una volta sola, usa invece empty(). Usa is_null() solo quando intendi specificamente "il valore è letteralmente null".

Un caso d'uso pratico

is_null() eccelle quando un valore è genuinamente opzionale e null è un indicatore significativo di "non fornito" — ad esempio una colonna del database o un campo API che può essere assente:

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

In PHP moderno, is_null($var) e $var === null sono funzionalmente identici — entrambi sono controlli null rigorosi:

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

La forma === null è generalmente preferita nei codebase moderni: evita una chiamata di funzione (un piccolo vantaggio in termini di prestazioni), si legge in modo coerente con altri confronti rigorosi, e funziona nei contesti in cui è richiesta un'espressione costante. Ricorri a is_null() quando vuoi un test nominato e chiamabile — ad esempio come callback: array_filter($items, 'is_null').

Attenzione: variabili non definite

is_null() restituisce true per una variabile mai definita, ma emette anche un avviso Undefined variable:

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

Se la variabile potrebbe non esistere affatto, verifica prima con isset()isset() restituisce false sia per le variabili non definite che per quelle null e non genera mai avvisi. Usa is_null() solo su variabili di cui sai che sono definite.

Conclusione

is_null() è un test preciso e rigoroso per il valore null. Usalo quando null ha un significato specifico nel tuo codice e vuoi distinguerlo da 0, "" o false. Per i controlli del tipo "questo valore manca o è vuoto in qualsiasi senso", preferisci isset() o empty(), e per ispezionare il tipo effettivo di un valore consulta gettype() e i tipi di dati PHP.

Pratica

Pratica
Cosa fa la funzione is_null in PHP?
Cosa fa la funzione is_null in PHP?
Was this page helpful?