Beste Weg, um debug-array mit PHP
Was ist der beste Weg zum Debuggen ein array, so dass Sie sehen können, welche Werte gespeichert sind und in welche keys in dem array sind Sie gespeichert? Auch wie machen Sie es, so dass es einfacher visuell, so dass Sie nicht haben, zu halten schauen Sie durch das array für die Schlüssel und die es Wert ist, in die eine Zeile print_r()
Funktion?
EDIT:
Ich merke jetzt, dass print_r()
ist nicht die einzige Lösung für debugging-arrays. Also, wenn Sie Alternative Lösungen an, wäre schön auch zu erfahren Sie mehr über das Debuggen.
EDIT2:
Ayesh K, ITroubs und Robert Rozas erwähnt haben beide Krumo und Kint so weit, wenn Sie andere haben, fühlen Sie sich frei, Sie zu posten. Auch Dank Raveren für das schreiben Kint!
- Wenn Sie "view source" auf der html-Seite sehen Sie die Zeilenumbrüche auftauchen.
- Ich werde nur beraten, vor der Verwendung (und Förderung) der buggy und veraltet Krumo. Hat es nicht gesehen-updates in 5+ Jahren, nicht zeigen, private Mitglieder, in einigen Fällen sogar verändert die angezeigten Daten (!) und buggy ist alles rund. Haftungsausschluss: ich bin der Autor von Kint, ich veröffentlichte es als ein überlegener Ersatz für Krumo.
- wie würde ich das umsetzen Kint in einer MVC-wie CodeIgniter? Gibt es eine Möglichkeit, dass ich laden kann, als nur eine Klasse, so dass es sein kann, eine Bibliothek?
- Es hängt davon ab glaube ich nicht CodeIgniter, aber die universal-Weise ist das hinzufügen
require 'kint/dir/Kint.php'
irgendwo in der bootstrap-Prozess.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jeder schlägt
print_r
die in Kern-und funktioniert wirklich gut.Aber wenn es um die anzeigen ein großes array
print_r()
treibt mich in den Wahnsinn Eingrenzung der Ausgabe.Geben versuchen,krumo.
Es schön druckt das array mit visual Formatierung, klicken Sie auf vergrößern, und es gibt Ihnen auch die exakte array-Schlüssel nennen, die Sie einfach kopieren und einfügen.
Itroubs erwähnt Kint als eine bessere alternative zu Krumo. (Dank ITroubs!)
Jedes PHP-Entwickler sollten eine Funktion für diese. Meine Funktion ist unten:
Hübsch drucken Daten haben, rufen Sie einfach
r($data);
. Wenn Sie wollen mehr Details, benutzen Sie diese Funktion:<pre>
wird nicht wirksam, wenn Sie nicht schließen Sie es.print_r($var, false)
undprint_r($var)
echo das Ergebnis.TRUE
als zweiten Parameter,print_r()
gibt die Ausgabe, anstatt zu drucken. Aber dieser code funktioniert, weilecho
Linien trennen.echo '<pre>' . print_r($var, TRUE) . '</pre>';
<=== in diesem Fall müssen Sie den zweiten Parameter.echo <pre>
Aufruf druckt das pre-tag erstmal, also das nächsteprint_r()
's-Ausgabe angezeigt wird auch im browser, und die anderen echo schließt das pre-tag.hier ist meins...
demo: http://o-0.me/dump_r/
repo: https://github.com/leeoniya/dump_r.php
Komponist: https://packagist.org/packages/leeoniya/dump-r
können Sie restyle es per css, wenn nötig.
Ich benutze var_dump....nun, wenn Sie möchten, dass einige mehr, check out this site:
http://raveren.github.io/kint/
und
http://krumo.sourceforge.net/
Die besten Praxis, um visuell zu sehen, wie die Werte/Schlüssel in einem array ist die folgende:
echo "<pre>".print_r($array,TRUE)."</pre>";
Das wahre ist erforderlich, da es änderungen, die es in einen string, der ausgegeben werden:
Schnelle Lösung: Öffnen Sie den source-code der Seite, und du wirst sehen
print_r
's Ausgabe in mehreren Zeilen und perfekt eingerückt.print_r ist nicht eine gefüttert (es verwendet
\n
als neue Zeile, nicht<br>
). Hinzufügen eines<pre>...</pre>
um es zu zeigen, die mehrere Zeilen.print_r()
verwendet\n
als seine Zeilentrenner. Verwenden<pre>
tags oder anzeigen den Quellcode der Seite, um es richtig Aussehen. (auf Windows, Linux arbeitet mit\n
)Können Sie entweder schauen source-code oder verwenden
var_dump()
oderprint_r()
mit<pre>...</pre>
Ich persönlich nie gemocht alle diese fancy stuff, ich benutze
print_r()
denn es ist nicht überwältigend und es gibt genug Informationen.Hier ist meiner:
Dieser wenn-Anweisung, um sicherzustellen, dass andere Menschen nicht sehen, was Sie schon gedruckt.
Es ist ein gutes add-on für Mozila-Firefox und Google Chrome namens "user agent switcher", wo können Sie Ihre custom user-agents. Also ich erstelle einen user-agent namens "Debug", und wenn ich arbeiten bin, ändere ich den user-agent.
Ob ich einen Standard-Benutzer-agent nichts passieren wird und die Seite nicht
die;
nur Sie und die Menschen, die Sie auch ändern Sie den user-agent auf "Debug" wird, finden Sie in der gedruckten Variablen. Dies ist hilfreich, wenn Sie möchten, ein problem zu Debuggen in einer Produktionsumgebung, und Sie nicht möchten, dass die Seite zudie;
und es ist auch gut, wenn auch andere Menschen an dem Projekt arbeiten, und Sie wollen nicht zu unterbrechen, Sie durch das töten der Seite.Dann habe ich echo die aktuelle Datei und Zeile, dies ist hilfreich, wenn Sie die Arbeit in einem framework oder CMS oder jedem anderen großen Projekt mit tausenden von Dateien und Ordner, und beim Debuggen, wenn Sie vielleicht vergessen, wo Sie gerade eingegeben haben
die;
oderexit;
und Sie müssen sich daran erinnern, wo Sie gewesen sind und die Variablen, die Sie gedruckt haben.Benutze ich die NetBeans IDE für PHP-Entwicklung, habe ich ein makro eingerichtet, so dass, wenn Sie wählen Sie eine variable aus und verwenden Sie es, wird es fügen Sie diese debugging-Werkzeug, um den text-editor und setzen Sie die Auswahl in einem
print_r();
Funktion. Wenn Sie auch NetBeans verwenden, können Sie dieses makro:Müssen Sie nur wählen Sie die
$variable
und verwenden Sie das makro.