MB Dev .tech
Registrieren Login

Debugging · Praxis & Beispiele

← Zurück zu Debugging Praxis

Theorie ist gut – aber Debugging lernst du am schnellsten, wenn du echte Fehlerbilder siehst und Schritt für Schritt verstehst, wie man sie sauber eingrenzt und löst.

Merke
Debugging ist ein Prozess

Du musst nicht „sofort die Lösung sehen“. Wichtig ist, dass du methodisch vorgehst: beobachten → eingrenzen → prüfen → lösen.

Praxisfall 1: „Warum kommt immer 0 raus?“

Ein typischer Einsteiger-Fehler passiert bei Zahlen und Strings: Man denkt, man rechnet – aber in Wirklichkeit kommt Text an.

Problem-Code

$price = "19,99"; // Komma statt Punkt
$qty   = 2;

$total = $price * $qty;

echo $total;
Achtung
„19,99“ ist kein gültiger Dezimalwert für Berechnungen

In vielen Programmiersprachen (auch in PHP) ist ein Dezimalpunkt üblich (19.99). Mit Komma entsteht schnell ein unerwartetes Ergebnis.

So debuggt man das sinnvoll

Schritt 1: Werte und Typen prüfen.

Debug-Check

var_dump($price);
var_dump($qty);

Schritt 2: Daten korrigieren (z.B. Komma zu Punkt).

Fix (Beispiel)

$price = str_replace(",", ".", $price);
$total = (float)$price * $qty;

echo $total;
Tipp
„Typen prüfen“ ist oft der schnellste Debugging-Schritt

Viele Bugs entstehen nicht durch komplexe Logik, sondern durch unerwartete Datentypen oder unerwartetes Format.

Praxisfall 2: „Warum ist meine if-Bedingung plötzlich falsch?“

Ein Klassiker: Die Bedingung „sieht“ richtig aus, aber du vergleichst etwas anderes als gedacht.

Problem-Code

$status = "0";

if ($status) {
    echo "Aktiv";
} else {
    echo "Inaktiv";
}

Überraschung: In PHP ist der String "0" ein spezieller Fall und wird in einer boolean-Prüfung wie false behandelt.

Merke
„Truthiness“ kann verwirren

Manche Werte werden automatisch als true/false interpretiert. Deshalb ist ein klarer Vergleich oft besser als eine „lose“ Prüfung.

Saubere Lösung

Wenn du wirklich „Status ist 0 oder 1“ prüfen willst, vergleiche explizit:

Expliziter Vergleich

$status = "0";

if ($status === "1") {
    echo "Aktiv";
} else {
    echo "Inaktiv";
}
Tipp
Für Einsteiger ist „explizit“ oft die bessere Wahl

Statt „wenn ($x) …“ lieber konkret vergleichen: $x === "1" oder $x !== "". So vermeidest du Überraschungen.

Praxisfall 3: „Warum wird mein Code-Teil nie ausgeführt?“

Manchmal ist nicht „ein Fehler im Code“ das Problem, sondern dass eine Bedingung nie erfüllt ist. Dann wirkt es so, als würde der Code „ignoriert“.

Problem-Code

$age = 18;

if ($age > 18) {
    echo "Zugang erlaubt";
}

Bei $age = 18 ist $age > 18 false. Der Code läuft also korrekt – nur eben nicht wie gedacht.

Merke
Debugging bedeutet auch: Erwartungen prüfen

Sehr oft ist der Code logisch korrekt, aber die Bedingung entspricht nicht dem, was du eigentlich willst.

Fix:

Fix

if ($age >= 18) {
    echo "Zugang erlaubt";
}

Kurz-Zusammenfassung

  • Prüfe zuerst Daten und Typen (var_dump ist oft der schnellste Weg).
  • Ändere immer nur eine Sache und beobachte den Effekt.
  • Nutze Logs, wenn du Abläufe nachvollziehen musst.
  • Viele Fehler sind „Erwartungsfehler“ – der Code macht, was du ihm sagst.
Tipp
Debugging-Checkliste

Wenn du festhängst: schreibe dir kurz auf „Erwartung“, „Beobachtung“, „Hypothese“, „Test“. Das wirkt simpel – ist aber extrem effektiv.