W3docs

is_null()

Die Funktion is_null() in PHP prüft, ob eine Variable null ist. Erfahren Sie Syntax, Unterschiede zu isset() und empty() sowie praktische Anwendungsfälle.

Einführung

is_null() ist eine eingebaute PHP-Funktion, die true zurückgibt, wenn eine Variable den Wert null enthält, andernfalls false. null ist PHPs spezieller „kein Wert"-Typ — er steht für eine Variable, die explizit geleert wurde, der null zugewiesen wurde oder der nie ein Wert gegeben wurde. Diese Seite behandelt die Syntax, was is_null() erkennt (und was nicht), wie es sich von isset() und empty() unterscheidet und wann stattdessen der === null-Vergleich sinnvoller ist.

Syntax

is_null(mixed $value): bool

Die Funktion nimmt ein Argument, $value, und gibt einen boolean zurück:

EingabeRückgabe
nulltrue
Alles andere — 0, "", "0", false, []false

Eine häufige Fehlerquelle ist die Annahme, dass „leere" Werte null sind. Das sind sie nicht: is_null() ist streng, daher geben 0, der leere String und false alle false zurück.

Einfaches Beispiel

php— editable, runs on the server

Hinweis: Beim Ausgeben mit echo wandelt PHP true in 1 und false in einen leeren String um, weshalb die zweite Zeile nichts ausgibt. Um die boolean-Werte deutlich zu sehen, verwenden Sie var_dump() statt echo.

Null ist nicht dasselbe wie leer

Dies ist das häufigste Missverständnis. Nur null ist null — Werte, die sich lediglich „leer" anfühlen, sind es nicht:

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

Wenn Sie alle diese „leeren" Fälle auf einmal abfangen möchten, verwenden Sie stattdessen empty(). Verwenden Sie is_null() nur dann, wenn Sie ausdrücklich meinen: „Der Wert ist buchstäblich null".

Ein praktischer Anwendungsfall

is_null() glänzt, wenn ein Wert tatsächlich optional ist und null als sinnvoller „nicht angegeben"-Marker dient — beispielsweise bei einer Datenbankspalte oder einem API-Feld, das fehlen kann:

<?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 modernem PHP sind is_null($var) und $var === null funktional identisch — beide sind strenge Null-Prüfungen:

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

Die Form === null wird in modernen Codebasen generell bevorzugt: Sie vermeidet einen Funktionsaufruf (kleiner Performance-Vorteil), liest sich konsistent mit anderen strikten Vergleichen und funktioniert dort, wo ein konstanter Ausdruck erforderlich ist. Greifen Sie auf is_null() zurück, wenn Sie einen benannten, aufrufbaren Test benötigen — beispielsweise als Callback: array_filter($items, 'is_null').

Fallstrick: undefinierte Variablen

is_null() gibt true für eine Variable zurück, die nie definiert wurde, löst dabei jedoch auch eine Undefined variable-Warnung aus:

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

Wenn die Variable möglicherweise gar nicht existiert, prüfen Sie zunächst mit isset()isset() gibt false für sowohl undefinierte als auch null-Variablen zurück und löst niemals eine Warnung aus. Verwenden Sie is_null() nur für Variablen, von denen Sie wissen, dass sie definiert sind.

Fazit

is_null() ist ein präziser, strenger Test auf den null-Wert. Verwenden Sie ihn, wenn null in Ihrem Code eine spezifische Bedeutung hat und Sie ihn von 0, "" oder false unterscheiden möchten. Für Prüfungen wie „fehlt dieser Wert oder ist er in irgendeiner Weise leer" bevorzugen Sie isset() oder empty(), und um den tatsächlichen Typ eines Wertes zu untersuchen, sehen Sie sich gettype() und PHP-Datentypen an.

Übungen

Übung
Was macht die Funktion is_null in PHP?
Was macht die Funktion is_null in PHP?
Was this page helpful?