print_r()
Die Funktion print_r() gibt eine lesbare Darstellung einer Variable in PHP aus und wird häufig zum Debuggen verwendet.
Einführung
print_r() ist eine eingebaute PHP-Funktion, die eine menschenlesbare Darstellung einer Variable ausgibt. Bei skalaren Werten (Strings, Zahlen, Booleans) gibt sie einfach den Wert aus, ihr eigentlicher Nutzen liegt jedoch bei Arrays und Objekten: Sie stellt Schlüssel und Werte als eingerückten Baum dar, sodass die Struktur auf einen Blick erkennbar ist.
Sie gehört zu den drei wichtigsten Debugging-Funktionen in PHP, neben var_dump() und var_export(). Verwende print_r(), wenn du einen schnellen, lesbaren Einblick in den Inhalt einer Variable benötigst.
Syntax
print_r(mixed $value, bool $return = false): string|true| Parameter | Beschreibung |
|---|---|
$value | Die anzuzeigende Variable. Beliebiger Typ – skalar, Array oder Objekt. |
$return | Optional. Bei false (Standardwert) wird die Ausgabe direkt ausgegeben. Bei true wird die Ausgabe als String zurückgegeben statt ausgegeben, sodass sie in einer Variable gespeichert werden kann. |
Der Rückgabewert hängt von $return ab: Mit dem Standard false wird true zurückgegeben; mit true wird der formatierte String zurückgegeben.
Ein Array ausgeben
print_r() zeigt verschachtelte Arrays als eingerückten Baum an, was das Lesen mehrstufiger Daten erleichtert:
Jeder Schlüssel erscheint als [key] => value, und das verschachtelte roles-Array wird unter seinem übergeordneten Element eingerückt:
Array
(
[name] => Alice
[age] => 30
[roles] => Array
(
[0] => admin
[1] => editor
)
)Die Ausgabe als String erfassen
Übergib true als zweites Argument, um den formatierten Text zurückzugeben statt ihn auszugeben. Das ist nützlich, um die Struktur in eine Log-Datei zu schreiben, sie in eine Fehlermeldung einzubetten oder in HTML zu verpacken:
<?php
$data = ["x" => 1, "y" => 2];
$text = print_r($data, true); // captured, not printed
error_log($text); // e.g. send it to the log
echo strtoupper(substr($text, 0, 5)); // prints: ARRAY
?>Tipp: Im Browser in <pre> einbetten
Auf einer Webseite komprimieren Browser die Einrückungen und Zeilenumbrüche, auf die print_r() angewiesen ist, sodass die Ausgabe wie eine einzige zusammenhängende Zeile aussieht. Bette die Ausgabe in ein <pre>-Tag ein (oder erfasse sie mit $return und gib sie innerhalb von <pre> aus), um die Formatierung lesbar zu halten:
<?php
echo "<pre>";
print_r($person);
echo "</pre>";
?>print_r() vs. var_dump() vs. var_export()
Diese drei Funktionen untersuchen alle Variablen, dienen aber unterschiedlichen Zwecken:
print_r()— am lesbarsten. Am besten für eine schnelle visuelle Überprüfung der Struktur. Sie zeigt keine Datentypen oder String-Längen an.var_dump()— zeigt den Typ und die Größe jedes Werts (int(30),string(5) "Alice") und kann mehrere Variablen gleichzeitig ausgeben. Am besten, wenn der Typ wichtig ist (z. B. zur Unterscheidung von0,"0",falseundnull).var_export()— gibt gültigen PHP-Code aus, der die Variable neu erstellt. Am besten, wenn du einen Wert möchtest, den du in den Quellcode einfügen oder cachen kannst.
Wenn du nur den Typ einer einzelnen Variable wissen möchtest, ist gettype() direkter.
Fazit
print_r() ist das benutzerfreundlichste der PHP-Inspektionswerkzeuge: Es gibt Arrays und Objekte als sauberen, eingerückten Baum aus, der beim Debuggen leicht zu überblicken ist. Verwende den Standardmodus, um eine Variable direkt in die Ausgabe zu schreiben, übergib true, um das Ergebnis als String zu erfassen, und bette den Aufruf in <pre> ein, wenn du ihn im Browser betrachtest. Wenn du auch Typen und Größen benötigst, wechsle zu var_dump(); wenn du wiederverwendbaren PHP-Code benötigst, verwende var_export().