Start · Sprachen · PHP · Referenz · sizeof

sizeof

Funktion

Alias von <code>count()</code> — gibt die Anzahl der Elemente eines Arrays oder eines zählbaren Objekts zurück.

seit PHP 4.0.0 Kategorie: array

Signatur

sizeof(array|Countable $array, int $mode = COUNT_NORMAL): int

Beschreibung

sizeof() ist ein vollständiger Alias der Funktion count() und verhält sich in jeder Hinsicht identisch. Die Funktion zählt die Elemente eines Arrays oder die Objekte, die das Interface Countable implementieren.

Wird der optionale Parameter mode auf COUNT_RECURSIVE (oder 1) gesetzt, zählt die Funktion auch alle Elemente in verschachtelten Arrays rekursiv. Dies ist besonders nützlich bei mehrdimensionalen Arrays, wenn die Gesamtanzahl aller Elemente auf allen Ebenen benötigt wird.

Da sizeof() lediglich ein Alias ist, wird in modernem PHP-Code bevorzugt die Originalfunktion count() verwendet. Die Funktion existiert vorrangig als Schreibvereinfachung für Entwickler, die aus anderen Sprachen (z. B. C) kommen, wo sizeof ein verbreiteter Begriff ist.

Hinweis: Wird der Funktion eine Variable übergeben, die weder ein Array noch ein Countable-Objekt ist, gibt sie 1 zurück (außer bei null, wo 0 zurückgegeben wird). Dieses Verhalten kann zu schwer auffindbaren Fehlern führen.

Parameter

Name Typ Default Beschreibung
$array Pflicht array|Countable Das Array oder das Countable-Objekt, dessen Elemente gezählt werden sollen.
$mode int COUNT_NORMAL Zählmodus: COUNT_NORMAL (Standard) zählt nur die oberste Ebene; COUNT_RECURSIVE zählt alle Elemente rekursiv in verschachtelten Arrays.

Rückgabewert

Typ
int
Beschreibung
Gibt die Anzahl der Elemente im Array oder im Countable-Objekt zurück. Bei einem leeren Array wird 0 zurückgegeben. Bei null wird ebenfalls 0 zurückgegeben. Bei allen anderen Werttypen wird 1 zurückgegeben.

Beispiele

Einfaches Zählen von Array-Elementen

<?php
$fruits = ['Apfel', 'Banane', 'Kirsche', 'Mango'];

echo sizeof($fruits); // Gibt 4 aus

$emptyArray = [];
echo sizeof($emptyArray); // Gibt 0 aus
4 0

Rekursives Zählen in einem mehrdimensionalen Array

<?php
$data = [
    'obst'    => ['Apfel', 'Banane', 'Kirsche'],
    'gemuese' => ['Karotte', 'Brokkoli'],
    'extra'   => 'Nüsse',
];

// Nur die oberste Ebene zählen (3 Schlüssel)
echo sizeof($data) . PHP_EOL;

// Alle Elemente rekursiv zählen (3 Schlüssel + 3 Früchte + 2 Gemüse + 1 String = 9)
echo sizeof($data, COUNT_RECURSIVE) . PHP_EOL;
3 9

Verwendung mit einem Countable-Objekt

<?php
class Sammlung implements Countable {
    private array $items;

    public function __construct(array $items) {
        $this->items = $items;
    }

    public function count(): int {
        return count($this->items);
    }
}

$sammlung = new Sammlung([1, 2, 3, 4, 5]);
echo sizeof($sammlung); // Gibt 5 aus
5

// Wichtig · Fallstricke

Alias-Hinweis: sizeof() ist ein Alias von count(). In neuem Code wird empfohlen, direkt count() zu verwenden, da Aliase in zukünftigen PHP-Versionen theoretisch als veraltet markiert werden könnten.

Fallstrick: Wird ein Wert übergeben, der kein Array und kein Countable-Objekt ist (z. B. ein string oder ein int), gibt sizeof() 1 zurück, ohne eine Fehlermeldung auszugeben. Ab PHP 7.2 wird bei skalaren Werten und nicht-zählbaren Objekten jedoch eine E_WARNING-Meldung erzeugt. Seit PHP 8.0 wird bei nicht-zählbaren Typen eine TypeError-Exception geworfen, wenn Strict Types aktiviert sind.