W3docs

is_array()

Die Funktion is_array() prüft in PHP, ob eine Variable ein Array ist, und gibt true oder false zurück.

Was ist is_array()?

is_array() ist eine in PHP eingebaute Funktion, die prüft, ob eine gegebene Variable ein Array ist. Sie gibt true zurück, wenn die Variable ein Array ist, und false für jeden anderen Typ (string, integer, object, null usw.).

PHP ist dynamisch typisiert, sodass eine Variable zur Laufzeit jeden Wert annehmen kann. Bevor Sie über einen Wert iterieren, darauf indizieren oder ihn an eine Array-Funktion wie count() oder array_map() übergeben, lohnt es sich oft zu prüfen, ob es sich wirklich um ein Array handelt. Der Aufruf einer Array-Funktion auf einem Nicht-Array kann einen TypeError (PHP 8+) auslösen oder eine Warnung ausgeben — ein schneller is_array()-Guard macht Ihren Code sicherer.

Syntax

is_array(mixed $value): bool

Die Funktion nimmt einen einzigen Parameter entgegen, $value — die zu testende Variable — und gibt immer einen boolean zurück. Sie löst niemals einen eigenen Fehler aus, sodass sie sicher mit jedem Wert aufgerufen werden kann, einschließlich nicht gesetzter Rückgabewerte von Funktionen.

Einfaches Beispiel

php— editable, runs on the server

Hier ist $list ein Array, sodass is_array() true zurückgibt; $text ist ein string, daher wird false zurückgegeben. Wir verwenden var_dump() statt echo, weil echo true den Wert 1 ausgibt, während echo false einen leeren string ausgibt — was boolesche Werte schwer lesbar macht. var_dump() zeigt Typ und Wert explizit an.

Was als Array gilt

Sowohl indizierte als auch assoziative Arrays geben true zurück, ebenso ein leeres Array. Alles, was lediglich wie eine Kollektion aussieht — wie ein object oder ein ArrayObject — zählt nicht als natives Array.

<?php
var_dump(is_array([]));                 // bool(true)  — empty array
var_dump(is_array([1, 2, 3]));          // bool(true)  — indexed
var_dump(is_array(["name" => "Ann"]));  // bool(true)  — associative
var_dump(is_array([[1, 2], [3, 4]]));   // bool(true)  — multidimensional

var_dump(is_array("array"));            // bool(false) — string
var_dump(is_array(42));                 // bool(false) — integer
var_dump(is_array(null));               // bool(false) — null
var_dump(is_array(new stdClass()));     // bool(false) — object
?>

Praktische Anwendung: Absicherung vor der Iteration

Ein gängiges Muster ist das Normalisieren von Eingaben, die entweder als einzelner Wert oder als Liste ankommen können, und anschließendes sicheres Iterieren:

<?php
function printAll(mixed $input): void
{
    // Wrap a single value in an array so the loop always works.
    if (!is_array($input)) {
        $input = [$input];
    }

    foreach ($input as $item) {
        echo $item, "\n";
    }
}

printAll("just one");        // just one
printAll(["a", "b", "c"]);   // a / b / c on separate lines
?>

Dies verhindert eine foreach-Warnung, wenn $input ein Skalar ist, und hält den aufrufenden Code einfach.

is_array() vs. verwandte Prüfungen

  • is_array() vs. gettype(): gettype() gibt einen string wie "array" zurück; is_array() gibt direkt einen boolean zurück, was in einem if besser lesbar ist.
  • is_array() vs. is_iterable(): Wenn Sie nur wissen müssen, ob Sie über einen Wert foreach ausführen können, ist is_iterable() umfassender — es akzeptiert sowohl Arrays als auch Traversable-Objekte (wie Generatoren).
  • is_array() vs. is_countable(): Verwenden Sie is_countable() vor dem Aufruf von count(), um auch Objekte zu akzeptieren, die das Countable-Interface implementieren.
  • Für andere skalare Prüfungen siehe is_string() und is_int().

Zusammenfassung

Verwenden Sie is_array(), wenn Sie eine schnelle, fehlerfreie Prüfung benötigen, ob ein Wert ein echtes PHP-Array ist — meistens als Guard vor einer Schleife oder vor dem Aufruf einer Array-spezifischen Funktion. Wenn Sie auch iterierbare Objekte zulassen müssen, greifen Sie stattdessen zu is_iterable() oder is_countable().

Übungen

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