Da es in etwa so viele Fehler wie Code gibt, ist es am Anfang ein erster Schritt, zunächst eine Suchmaschine zu befragen. Dies hilft Fehler zu verstehen, später helfen meist schon die Fehlermeldungen an sich, um den Fehler zu beheben.
1. Wenn ein Fehler auftritt
Wie man es sich vorstellt, dann ist es sinnvoll, Grundlegendes zu prüfen und zwar zunächst:
- Befinde ich mich in der richtigen Datei?
Ein am Anfang häufig gemachter Fehler ist das duplizieren von Dateien, um keine weiteren Probleme zu verursachen und dann aber die unbearbeitete Datei aufzurufen. - Stimmen alle Bezeichnungen von Variablen?
Nur bei korrekter Schreibweise wird auch die gewünschte Variable angesprochen.
2. Den Fehler eingrenzen
Wenn ein Fehler auftritt oder, noch interessanter, das Skript nicht tut, was ihr erwartet, dann grenzt den Fehler ein. Lasst euch über die Funktionen echo $var
, print_r($var)
, var_dump($var)
usw. den Inhalt der Variable ausgeben. Mit etwas Glück könnt ihr hierdurch schon den Fehler ausfindig machen und dann den Fehler beheben.
3. Exception werfen
Mit try
and catch
könnt ihr euch die Fehlermeldung des Compilers auf den Bildschirm holen. Dazu schreibt ihr:
try { // To do's } catch (Exception $oEexception) { // ERROR echo 'Exception abgefangen: ', $oEexception->getMessage(); }
4. php.ini
In der php.ini
könnt ihr den Debug-Modus aktivieren, um euch Fehler und mögliche Probleme anzeigen zu lassen. Diese Einstellungen gelten dann für euer gesamtes Projekt, also alle php-Dateien:
error_reporting = E_ALL & ~E_NOTICE display_errors = Off log_errors = On
5. Laufzeit, um Fehler in einzelnen Skripten zu finden
Über folgende Codeschnippsel am Anfang eures Skriptes werden euch Fehler angezeigt, sobald php solche erkennt:
ini_set('display_errors', '0'); ini_set('error_reporting', E_ALL);
6. PHP error.log
In der php.ini
findet ihr die Definition error_log = /var/log/php-scripts.log
o.ä., die euch Aufschluss gibt, wo das PHP Fehlerlog zu finden ist.
HINWEIS: So macht die Fehlersuche fast schon Spaß, aber beim Schreiben von Code trotzdem zwischendurch immer testen, um Fehler schnell eingrenzen und beheben zu können, damit es nicht zum dauerhaften Suchspiel wird.