Signatur
Beschreibung
var_representation() erzeugt eine PHP-parsbare Stringdarstellung eines beliebigen Wertes. Im Gegensatz zu var_export() liefert die Funktion kompaktere und lesbarere Ausgaben: Arrays werden mit der Kurzschreibweise [...] anstelle von array(...) dargestellt, und Floats werden so ausgegeben, dass sie beim erneuten Einlesen exakt denselben Wert ergeben.
Die Funktion gibt immer einen String zurück und schreibt niemals direkt in den Ausgabestream – es gibt kein zweites $return-Argument wie bei var_export(). Dies macht den Rückgabewert besonders praktisch für weitere Verarbeitungsschritte oder zum Speichern in Dateien.
Über den Parameter $flags lässt sich die Ausgabe steuern. Mit VAR_REPRESENTATION_SINGLE_LINE wird die gesamte Ausgabe in einer einzigen Zeile ohne Einrückungen erzeugt, was sich für kompakte Logs oder Inline-Darstellungen eignet.
Die Funktion ist Teil der PECL-Extension var_representation und steht ab PHP 8.2 zur Verfügung. Sie eignet sich besonders für Debugging, Code-Generierung und das Serialisieren von Konfigurationsdaten in lesbare PHP-Dateien.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value Pflicht | mixed | Der Wert, dessen Stringdarstellung erzeugt werden soll. Kann ein beliebiger PHP-Typ sein: int, float, string, bool, null, array oder object. |
|
| $flags | int | 0 | Optionale Flags zur Steuerung der Ausgabe. Derzeit wird VAR_REPRESENTATION_SINGLE_LINE unterstützt, das die gesamte Ausgabe in einer einzigen Zeile ohne Einrückungen erzeugt. |
Rückgabewert
eval() ausgewertet werden.Beispiele
Einfache Werte und Arrays darstellen
<?php
// Voraussetzung: PECL-Extension var_representation installiert
echo var_representation(42) . "\n";
echo var_representation(3.14) . "\n";
echo var_representation(true) . "\n";
echo var_representation(null) . "\n";
echo var_representation('Hallo Welt') . "\n";
echo var_representation(['a', 'b', 'c']) . "\n";
echo var_representation(['schlüssel' => 'wert', 'zahl' => 42]) . "\n";
Einzeilige Ausgabe mit VAR_REPRESENTATION_SINGLE_LINE
<?php
$daten = [
'name' => 'Max Mustermann',
'alter' => 30,
'aktiv' => true,
];
// Mehrzeilige Ausgabe (Standard)
echo var_representation($daten) . "\n\n";
// Einzeilige Ausgabe für Logs oder kompakte Darstellung
echo var_representation($daten, VAR_REPRESENTATION_SINGLE_LINE) . "\n";
Konfigurationsdatei generieren
<?php
$config = [
'debug' => false,
'version' => '1.0.0',
'db' => [
'host' => 'localhost',
'port' => 3306,
],
];
$inhalt = '<?php' . "\n" . 'return ' . var_representation($config) . ';' . "\n";
file_put_contents('config.php', $inhalt);
echo $inhalt;
// Wichtig · Fallstricke
Verfügbarkeit: var_representation() ist keine eingebaute PHP-Funktion, sondern stammt aus der PECL-Extension var_representation. Sie muss separat installiert werden (pecl install var_representation) und steht ab PHP 8.2 zur Verfügung.
Unterschied zu var_export(): var_export() verwendet die ältere array(...)-Syntax und benötigt ein zweites Argument true, um einen String zurückzugeben. var_representation() gibt immer einen String zurück und nutzt die moderne [...]-Array-Syntax.
Objekte: Bei Objekten, die __set_state() nicht implementieren, kann die Ausgabe möglicherweise nicht direkt per eval() wiederhergestellt werden. Prüfen Sie im Zweifelsfall, ob das erzeugte Ergebnis tatsächlich re-parsbar ist.