var_export
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
var_export — Gibt den Inhalt einer Variablen als parsbaren PHP-Code zurück
Beschreibung
var_export() liefert strukturierte Informationen zum Inhalt der übergebenen Variable. Das Verhalten ist ähnlich dem der var_dump(), allerdings ist hier das Ergebnis valider PHP-Code mit dem sich der Inhalt der Variable wieder herstellen lässt.
Parameter-Liste
-
expression -
Die zu exportierende Variable.
-
return -
Wird dieser Parameter auf
TRUEgesetzt so wird das Ergebnis nicht direkt ausgegeben sondern als string zurückgegeben.
Rückgabewerte
Liefert die Repräsentation der Variablen als PHP-Code wenn der
return genutzt wird und als Wert TRUE
ergibt. Anderenfalls gibt die Funktion NULL zurück.
Anmerkungen
Hinweis:
Wenn der
returnParameter verwendet wird, benutzt diese Funktion intern Ausgabepufferung und kann daher nicht in einer ob_start()-Callbackfunktion eingesetzt werden.
Changelog
| Version | Beschreibung |
|---|---|
| 5.1.0 | Möglichkeit Klassen und Arrays die Klassen enthalten mit Hilfe der 'magischen' __set_state Methode zu exportieren. |
Beispiele
Beispiel #1 var_export() Beispiel
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
<?php
$b = 3.1;
$v = var_export($b, true);
echo $v;
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
3.1
Beispiel #2 Export von Klassen ab PHP 5.1.0
<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
A::__set_state(array( 'var' => 5, ))
Beispiel #3 Nutzung von __set_state (ab PHP 5.1.0)
<?php
class A
{
public $var1;
public $var2;
public static function __set_state($an_array)
{
$obj = new A;
$obj->var1 = $an_array['var1'];
$obj->var2 = $an_array['var2'];
return $obj;
}
}
$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';
eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
// 'var1' => 5,
// 'var2' => 'foo',
// ));
var_dump($b);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
object(A)#2 (2) {
["var1"]=>
int(5)
["var2"]=>
string(3) "foo"
}
Anmerkungen
Hinweis:
Variablen vom Typ resource können von dieser Funktion nicht exportiert werden.
Hinweis:
var_export() ist nicht in der Lage zirkuläre Referenzen aufzulösen da es annähernd unmöglich ist hierfür gültigen PHP-Code zu erzeugen. In solchen Fällen empfiehlt sich statt dessen die Nutzung der serialize() für eine vollständige Repräsentation von entsprechenden Arrays oder Objekten.
Wenn var_export() Objekte exportiert, ist zwecks größtmöglicher Kompatibilität der führende Backslash nicht im Namen von Klassen in Namensräumen enthälten.
Siehe auch
- print_r() - Gibt Variablen-Informationen in lesbarer Form aus
- serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes.
- var_dump() - Gibt alle Informationen zu einer Variablen aus