======[PHP] Debuggen mit var_dump()====== =====Ausgangslage===== Häufig kommt es vor, dass wir eine Code haben der nicht das macht was wir wollen. Es ist nicht immer einfach herauszufinden warum. Es gibt möglichkeiten zum Debuggen auf einem lokalen Server. Jedoch hat man diese nicht immer installiert, oder man muss es auf dem Host-Server testen, da es sich anders verhält als lokal. Ich habe hier mal ein einfachen Code mit zwei Fehler drin Eigentlich erwarte ich da die Ausgabe 'bar1 hat grosse Füsse'. Jedoch kommt das folgende foo hat grosse Füsse {{image class="left" url="images/icons/48/text-x-gtkrc.png"}} =====Lösung===== Irgend einer meiner str_replace() oder ein if() funktioniert nicht so wie ich will. Ich ergänze den Code um mehrere Zeilen mit var_dump() um mir einige Zwieschenresultate anzuschauen. Die Ausgabe sieht wie folgt aus string(20) "Bar hat grosse Füsse" string(20) "foo hat grosse Füsse" string(20) "bar hat grosse Füsse" string(20) "bar hat grosse Füsse" bar hat grosse Füsse Daruas folgern wir, dass der 4te replace nichts bewirkt hat. Stellt sich die Frage, ist der if() falsch? nun, prüfen wir das mal. Dazu füge ich einfach mal im if die Ausgabe var_dump('Testpunkt 1'); ein um zu sehen ob es durch den if() geht oder nicht. Die vorgängenin var_dump() entfernen wir wieder, weil dort läuft es ja wie erwartet. Die Ausgabe ist string(20) "bar hat grosse Füsse" bar hat grosse Füsse Also geht er nicht in den if(). Wenn wir den if() genauer ansehen, merken wir den Fehler schnell 1 ist nicht Typenvergleich & wertevergleich mit '1. Und ein Int ist natürlich nicht dasselbe wie ein String. Also ändern wir mal einen reinen Wertevergleich und schauen was passiert. Die Ausgabe string(11) "Testpunkt 1" string(20) "foo hat grosse Füsse" foo hat grosse Füsse Der 2te if() ist somit auch korrekt. Bleibt nur nach der letzte str_replace der nicht so will wie wir wollen. Schnell sehen wir, dass da eine Gross-Kleinschreibung falsch ist. foo wird nicht mit Foo gefunden.. das korrigierte PHP sieht dann so aus Und die Ausgabe bar1 hat grosse Füsse {{tag>PHP Tutorial}}