Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erklärung und Unterschiede der Funktionen isset(), empty() und is_null() in PHP

Detaillierte Erklärung und Unterschiede der Funktionen isset(), empty() und is_null() in PHP

M66 2025-10-22

Undefinierte und Nullwerte von PHP-Variablen verstehen

Variablen sind eine Kernkomponente in fast jedem mit PHP entwickelten Programm. Meistens haben Variablen einen Anfangswert, einige Variablen sind jedoch möglicherweise nicht initialisiert, was dazu führen kann, dass PHP eine Warnung „Undefinierte Variable“ ausgibt.

Eine Variable kann aus verschiedenen Gründen undefiniert sein: Beispielsweise ist die Variable überhaupt nicht deklariert, es liegt ein Tippfehler vor oder die Variable ist bedingt definiert. Darüber hinaus kann der Wert der Variablen NULL sein, was darauf hinweisen kann, dass sie nicht initialisiert wurde oder dass die Funktion einen Nullwert zurückgegeben hat, um einen bestimmten Status anzuzeigen.

Es ist wichtig zu prüfen, ob Variablen definiert oder leer sind, bevor Sie sie verwenden. PHP bietet drei Funktionen isset(), empty() und is_null(), um diese Situationen zu bewältigen.

Übersicht über die Funktionsdefinition

Lassen Sie uns zunächst die grundlegende Verwendung dieser drei Funktionen verstehen:

isset(): Prüft, ob die Variable deklariert wurde und nicht NULL ist.

empty(): Bestimmen Sie, ob die Variable existiert und der Wert nicht falsch ist (einschließlich 0, leere Zeichenfolge, NULL usw.).

is_null(): Überprüfen Sie, ob der Wert der Variablen NULL ist.

Vergleich von isset() und empty()

isset() gibt true zurück, wenn die Variable definiert und nicht NULL ist, und gibt true zurück, selbst wenn der Variablenwert 0, eine leere Zeichenfolge oder false ist. Und empty() gibt true zurück, wenn der Variablenwert ein „falscher Wert“ ist, einschließlich 0, leerer String „“, String „0“, leeres Array, NULL oder false.

Die beiden ähneln sich darin, dass sie beide Sprachkonstrukte sind und nicht über Variablenfunktionen aufgerufen werden können.

<?php
$fruit = '';
if(isset($fruit)) {
    echo 'Do you like '.$fruit.'?';
}
// Output:  Do you like ?

if(!empty($fruit)) {
    echo 'Do you like '.$fruit.'?';
}
// No Output
?>

Tatsächlich kann empty() mithilfe von isset() in Kombination mit logischen Operationen implementiert werden. In der Regel ist es jedoch einfacher, die integrierte Funktion empty() direkt zu verwenden:

<?php
function my_empty($x) {
  return !isset($x) || $x == false;
}
?>

Der Unterschied zwischen isset() und is_null()

is_null() gibt true zurück, wenn die Variable explizit auf NULL gesetzt ist, andernfalls false. Und isset() gibt true zurück, solange die Variable definiert ist und nicht NULL.

<?php
$fruit = NULL;
if(isset($fruit)) {
    echo 'Do you like '.$fruit.'?';
}
// No Output

if(is_null($fruit)) {
    echo 'There is no fruit.';
}
// Output: There is no fruit.
?>

Der Unterschied zwischen empty() und is_null()

empty() gibt true zurück, wenn der Variablenwert ein „falscher Wert“ ist, einschließlich einer leeren Zeichenfolge, NULL, einer Ganzzahl 0 oder eines leeren Arrays, während is_null() nur true zurückgibt, wenn der Variablenwert NULL ist.

<?php
$person = [
    'first_name' => &#39;Monty&#39;,
    &#39;last_name&#39; => &#39;&#39;,
    &#39;Alter&#39; => &#39;83&#39;,
    &#39;fav_movie&#39; => NULL
];

if(empty($person[&#39;last_name&#39;])) {
    if(is_null($person[&#39;last_name&#39;])) {
        echo &#39;Der Nachname ist auf NULL gesetzt.&#39;;
    } anders {
        echo &#39;Der Nachname ist wahrscheinlich eine leere Zeichenfolge.&#39;;
    }
}
// Ausgabe: Der Nachname ist wahrscheinlich eine leere Zeichenfolge.

if(is_null($person[&#39;fav_movie&#39;])) {
    echo $person[&#39;first_name&#39;].&#39; hat keinen Lieblingsfilm angegeben.&#39;;
}
// Ausgabe: Monty hat keinen Lieblingsfilm angegeben.
?>

Tipps

Um saubereren und sichereren Code zu schreiben, finden Sie hier einige Tipps:

Mehrere Variablen können gleichzeitig an isset() übergeben werden, um zu überprüfen, ob sie alle definiert und nicht NULL sind.

Vermeiden Sie die Verwendung von == zur Prüfung auf NULL, um eine Fehlinterpretation einer leeren Zeichenfolge oder von „false“ als NULL zu vermeiden.

Zusammenfassen

Dieser Artikel analysiert detailliert die Verwendung und Unterschiede von isset(), empty() und is_null() in PHP. Das Verständnis ihrer Unterschiede kann Entwicklern dabei helfen, den Variablenstatus genauer zu handhaben und die Stabilität und Lesbarkeit des Codes zu verbessern.