Signatur
Beschreibung
json_encode() serialisiert PHP-Datenstrukturen nach JSON. Assoziative Arrays werden zu JSON-Objekten, indizierte Arrays zu JSON-Arrays. Objekte werden anhand ihrer public Properties serialisiert — oder wenn sie JsonSerializable implementieren, über die eigene jsonSerialize()-Methode.
Nutze immer JSON_THROW_ON_ERROR statt still false bei Fehlern zurückzugeben. Und JSON_UNESCAPED_UNICODE, damit Umlaute und Emojis nicht als \\u00e4 escaped werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value Pflicht | mixed | — | Der zu serialisierende Wert. Beliebiger Typ außer resource. |
| $flags | int | 0 | Bitmaske. Häufig: JSON_PRETTY_PRINT, JSON_UNESCAPED_UNICODE, JSON_UNESCAPED_SLASHES, JSON_THROW_ON_ERROR. |
| $depth | int | 512 | Maximale Verschachtelungstiefe. |
Rückgabewert
JSON_THROW_ON_ERROR: false bei Fehlern.Beispiele
Assoziatives Array als JSON
<?php
$data = ['name' => 'Anna', 'roles' => ['admin', 'editor']];
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
Pretty-Print mit Umlauten
<?php
$data = ['stadt' => 'München', 'einwohner' => 1_488_000];
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
// Wichtig · Fallstricke
Zirkuläre Referenzen (Objekt A verweist auf B, B auf A) werfen einen Fehler. Vor dem Encoding auflösen — z. B. mit einer toArray()-Methode auf deinen Models.