Signatur
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
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
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;
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
// 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.