Ist das Array in PHP leer? Alle Methoden zur Überprüfung

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Wie überprüft man, ob ein Array in PHP leer ist? Vollständige Anleitung mit Beispielen

\n\n

Hallo, Kollege Entwickler! Wenn du jemals Code in PHP geschrieben hast, bist du sicherlich auf die Situation gestoßen, in der du herausfinden musst: Enthält das Array überhaupt etwas, oder ist es leer, wie die Tasche eines Studenten nach der Prüfungszeit? Diese Aufgabe scheint trivial, birgt aber einige Fallstricke. Besonders für Anfänger, die versehentlich das Skript zum Absturz bringen können, wenn sie falsch prüfen.

\n\n

Heute werden wir alle gängigen Methoden zur Überprüfung eines leeren Arrays in PHP durchgehen, von den einfachsten bis zu den professionellen. Du wirst erfahren, wie sich empty() von isset() unterscheidet, warum count() gefährlich sein kann und wie man perfekten Code schreibt. Los geht's!

\n\n

Warum ist das wichtig? Typische Anfängerfehler

\n\n

Stell dir vor: Du erhältst Daten vom Benutzer (z. B. eine Liste von Artikeln im Warenkorb). Wenn das Array leer ist, soll eine Meldung "Der Warenkorb ist leer" angezeigt werden. Wenn es nicht leer ist, sollen die Artikel ausgegeben werden. Scheinbar einfache Logik. Aber hier ist, was Anfänger oft schreiben:

\n\n
// Fehler Nr. 1: Vergleich mit false\nif ($cart == false) {\n    echo "Der Warenkorb ist leer";\n}\n\n// Fehler Nr. 2: Implizite Typumwandlung\nif ($cart) {\n    // Dieser Code wird ausgeführt, wenn das Array nicht leer ist\n}
\n\n

Scheint zu funktionieren? Ja, aber nur in einfachen Fällen. Was ist aber, wenn das Array Schlüssel hat, aber alle Werte null oder leere Zeichenketten sind? Oder wenn die Variable gar nicht definiert ist? Hier treten die Fehler auf. Um sie zu vermeiden, lass uns die Prüfung eines leeren Arrays in PHP richtig durchgehen.

\n\n

Methode Nr. 1: Die Funktion empty() – die beliebteste

\n\n

Das ist das Erste, was einem in den Sinn kommt. Die Funktion empty() in PHP gibt true zurück, wenn die Variable leer ist. Für ein Array bedeutet das: Das Array existiert nicht, ist gleich null oder enthält keine Elemente.

\n\n
<?php\n$emptyArray = [];\n$nonEmptyArray = ['apple', 'banana'];\n\nvar_dump(empty($emptyArray));    // true\nvar_dump(empty($nonEmptyArray)); // false\n?>
\n\n

Vorteile: kurz, lesbar, funktioniert für undefinierte Variablen (gibt keine Warning aus).

\n\n

Nachteile: empty() betrachtet auch 0, '0', '', false, null und ein leeres SimpleXMLElement-Objekt als leer. Wenn dein Array z. B. ein Element mit dem Wert 0 enthält, sagt empty(), dass es leer ist. Das ist nicht immer das, was du willst.

\n\n
<?php\n$trickyArray = [0];\nvar_dump(empty($trickyArray)); // true! Aber es gibt ein Element\n?>
\n\n

Fazit: Verwende empty() nur, wenn du sicher bist, dass das Array keine "falschen" Werte (0, leere Zeichenkette usw.) enthält. Für die meisten Aufgaben mit Formularen und Benutzereingaben ist es eine ausgezeichnete Wahl.

\n\n

Methode Nr. 2: Die Funktion count() – exakte Zählung

\n\n

Die zweitbeliebteste Methode ist die Prüfung eines Arrays auf Leere mit count(). Diese Funktion gibt die Anzahl der Elemente in einem Array zurück.

\n\n
<?php\n$array1 = [];\n$array2 = ['a' => 1, 'b' => 2];\n\nif (count($array1) === 0) {\n    echo "Das Array ist leer";\n}\n\nif (count($array2) > 0) {\n    echo "Das Array ist nicht leer, es enthält " . count($array2) . " Elemente";\n}\n?>
\n\n

Vorteile: absolut genaues Ergebnis. Wenn count() 0 zurückgibt, enthält das Array keine Elemente. Keine Überraschungen mit falschen Werten.

\n\n

Nachteile: Bei sehr großen Arrays kann count() langsamer sein als empty() (obwohl der Unterschied normalerweise unbedeutend ist). Außerdem ist Vorsicht geboten: Wenn die Variable nicht definiert ist, gibt count() eine Warning aus. Verwende eine Prüfung mit isset() oder @count() (aber das Unterdrücken von Fehlern ist eine schlechte Praxis).

\n\n

Best Practice: Kombiniere mit isset():

\n\n
<?php\nif (isset($array) && count($array)                

Blogs

Buchempfehlungen