Was ist der Unterschied zwischen var_dump, var_exportund print_r?
Was ist der Unterschied zwischen var_dump, var_exportund print_r?
Antworten:
var_dump dient zum Debuggen. var_dumpdruckt immer das Ergebnis.
// var_dump(array('', false, 42, array('42')));
array(4) {
[0]=> string(0) ""
[1]=> bool(false)
[2]=> int(42)
[3]=> array(1) {[0]=>string(2) "42")}
}
print_r dient auch zu Debugging-Zwecken, enthält jedoch nicht den Typ des Mitglieds. Es ist eine gute Idee, wenn Sie die Arten von Elementen in Ihrem Array kennen, aber ansonsten irreführend sein können. print_rStandardmäßig wird das Ergebnis gedruckt, es kann jedoch stattdessen mithilfe des optionalen$returnParametersals Zeichenfolge zurückgegebenwerden.
Array (
[0] =>
[1] =>
[2] => 42
[3] => Array ([0] => 42)
)
var_export druckt einen gültigen PHP-Code. Nützlich, wenn Sie einige Werte berechnet haben und die Ergebnisse als Konstante in einem anderen Skript anzeigen möchten. Beachten Sie, dassvar_exportReferenzzyklen / rekursive Arrays nicht verarbeitet werden können,var_dumpundprint_rüberprüfen Sie diese. var_exportStandardmäßig wird das Ergebnis gedruckt, es kann jedoch stattdessen mithilfe des optionalen$returnParametersals Zeichenfolge zurückgegebenwerden.
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
Persönlich denke ich, var_exportist der beste Kompromiss zwischen prägnant und präzise.
var_exportaufgrund seiner Natur ein schrecklicher rekursiver Tod auf rekursiven Arrays sterben wird. print_rund var_dump(obwohl ich mir bei letzterem nicht ganz sicher bin, da ich es normalerweise nicht benutze) habe dieses Problem nicht. Also var_export($_GLOBALS);zum Beispiel nicht (was sich selbst enthält). :)
var_dumpAusgabe. Schade, dass die Ausgabe nicht als Zeichenfolge zurückgegeben werden kann. Als solches kann ich mich im obigen Kommentar auf das Gefühl von @ iconoclast beziehen. Aber mit wählen , var_exportüber var_dumpfür diesen Anwendungsfall ist akzeptabel für mich. Beachten Sie der Vollständigkeit halber diese entsprechende Funktionsanforderung .
var_dumpund var_exportbeziehen sich so (aus dem Handbuch )
var_export () erhält strukturierte Informationen über die angegebene Variable. Es ähnelt var_dump () mit einer Ausnahme: Die zurückgegebene Darstellung ist gültiger PHP-Code.
Sie unterscheiden sich davon, print_rdass var_dumpmehr Informationen wie der Datentyp und die Größe der Elemente exportiert werden.