86 Stimmen

PHP var_dump()-Werte in einer Zeile pro Wert anzeigen lassen

Wenn ich echo var_dump($_variable), erhalte ich eine lange, umlaufende Zeile mit allen variablen und Werte wie

["kt_login_user"]=>  string(8) "teacher1" ["kt_login_id"]=>  string(3) "973" ["kt_campusID"]=>  string(4) "9088" ["kt_positionID"]=>  string(1) "5" 

Gibt es eine Möglichkeit, jeden Wert in einer eigenen Zeile anzuzeigen, damit er leichter abzulesen ist? Etwa so:

["kt_login_user"]=>  string(8) "teacher1" 
["kt_login_id"]=>  string(3) "973" 
["kt_campusID"]=>  string(4) "9088" 
["kt_positionID"]=>  string(1) "5"

149voto

phirschybar Punkte 8007

Ja, wickeln Sie es mit <pre> , z.B.:

echo '<pre>' , var_dump($variable) , '</pre>';

44voto

Dave Punkte 842

Normalerweise habe ich eine nette Funktion, um die Ausgabe eines Arrays zu behandeln, nur um es beim Debuggen ein wenig zu verschönern.

function pr($data)
{
    echo "<pre>";
    print_r($data); // or var_dump($data);
    echo "</pre>";
}

Dann nennen Sie es einfach

pr($array);

Oder wenn Sie einen Editor haben, der Snippets speichert, damit Sie schneller darauf zugreifen können, anstatt für jedes Projekt, das Sie erstellen, oder jede Seite, die nur einen kurzen Test erfordert, eine Funktion zu erstellen.

Für print_r :

echo "<pre>", print_r($data, 1), "</pre>";

Für var_dump() :

echo "<pre>", var_dump($data), "</pre>";

Ich verwende das oben genannte mit PHP Storm. Ich habe es als eine pr Tab-Befehl.

16voto

Mark Punkte 2561

Ich habe mich auch mit diesem Thema beschäftigt und keine richtige Antwort gefunden. Das funktioniert bei mir nicht:

echo '<pre>' . var_dump($variable) . '</pre>';

Dies wird nicht eine schöne Anzeige des Arrays für mich, mit Zeilenumbrüchen (ich bin mit Firefox 31.3.0)

Nach einigen Experimenten konnte das Problem jedoch gelöst werden (beachten Sie, dass das php zunächst geschlossen ist):

... ?> <pre><?php echo var_dump($variable) ?></pre> <?php ...

Damit ist das Problem gelöst, und es wird ein schönes, leicht lesbares Feld in meinem Browser angezeigt. Sie sehen, dass die Tags nicht in PHP verpackt sind; nur der echo var_dump-Teil ist es.

14voto

dm03514 Punkte 52971

Wenn Sie eine XDebug installiert ist, können Sie die Funktion var_dump Ersatz. Zitieren:

Xdebug ersetzt die Funktion var_dump() von PHP zur Anzeige von Variablen. Die Version von Xdebug enthält verschiedene Farben für verschiedene Typen und setzt Grenzen für die Anzahl der Array-Elemente/Objekteigenschaften, die maximale Tiefe und die Länge der Strings. Es gibt noch ein paar andere Funktionen, die sich mit der Anzeige von Variablen befassen.

Sie werden wahrscheinlich einige der folgenden Einstellungen ändern wollen:

Es gibt eine Reihe von Einstellungen, die die Ausgabe der modifizierten Funktion var_dump() von Xdebug steuern: xdebug.var_display_max_children, xdebug.var_display_max_data und xdebug.var_display_max_depth. Die Wirkung dieser drei Einstellungen lässt sich am besten anhand eines Beispiels verdeutlichen. Das folgende Skript wird viermal ausgeführt, jedes Mal mit anderen Einstellungen. Anhand der Registerkarten können Sie den Unterschied erkennen.

Bedenken Sie jedoch, dass XDebug Ihren Code erheblich verlangsamt, selbst wenn er nur geladen ist. Es ist nicht ratsam, es auf Produktionsservern einzusetzen. Aber hey, Sie sind nicht var_dumping auf Produktionsservern sowieso nicht, oder?

11voto

Tieme Punkte 58317

var_export ergibt eine schöne Ausgabe. Beispiele aus den Dokumentationen:

$a = array (1, 2, array ("a", "b", "c"));
echo '<pre>' . var_export($a, true) . '</pre>';

Wird ausgegeben:

array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X