In diesem Tutorial möchte ich Ihnen zeigen, wie Sie mit PHPs error_reporting()-Funktion einstellen können, ob und, wenn ja, welche Fehlermeldungen vom Script ausgegeben werden. Die error_reporting()-Funktion bietet dem Programmierer genau einen Parameter an. Diesem muss eine, von PHP, vordefinierte Konstante übergeben werden, um das Anzeigeverhalten von Fehlermeldungen einzustellen.
Die Syntax der Funktion lautet demnach:
error_reporting(level);
In folgendem Beispiel wird das Fehler-Anzeigeverhalten darauf eingestellt, dass jegliche Fehlermeldungen ausgegeben werden.
Der Code des Beispiels:
<?php
// Muss in die erste Zeile des Script...
error_reporting(E_ALL);
// Test ob ein Fehler kommt.
$array[test_error_reporting] = 'error_reporting';
// Nächster Test
$meintest .= 'Das ist ein Fehler!';
?>
Die Ausgabe des Beispiels:
Notice: Use of undefined constant test_error_reporting - assumed 'test_error_reporting' in /Applications/XAMPP/xamppfiles/htdocs/index.php on line 5
Notice: Undefined variable: meintest in /Applications/XAMPP/xamppfiles/htdocs/index.php on line 7
Anmerkung: Die Fehlermeldung kann, je nach installiertem Webserver, vom obigen Ergebnis abweichen, da sich der Dateipfad von System zu System unterscheidet. Die restliche Fehlermeldung ist davon allerdings nicht betroffen.
Die Erklärung des Beispiels:
Die Benutzung der Konstante "E_ALL" in der error_reporting()-Funktion stellt ein, dass alle Fehler ausgegeben werden. In den beiden anderen (unkommentierten) Codezeilen finden sich, zur Prüfung des Verhaltens, zwei fehlerhafte Aufrufe.
Fehlermeldung Nr.1 meldet, dass PHP die Konstante "test_error_reporting" nicht kennt, da als Arrayschlüssel zwar eben diese Konstante angegeben ist, sie vorher aber nicht definiert wurde. Auch die zweite Fehlermeldung gibt den erwarteten Fehler aus. Im Code wird der Variable "meintest" ein String angefügt, obwohl eine solche Variable noch gar nicht existiert und ihr somit auch nichts angefügt werden kann.
Die weiteren möglichen Konstanten um das Anzeigeverhalten von Fehlermeldungen zu steuern sind:
- 0: Keine Fehlermeldungen anzeigen.
- E_ERROR: Fatale Laufzeit-Fehler, also Fehler die zur Laufzeit von PHP nicht automatisch behoben werden können, anzeigen.
- E_WARNING: Warnungen, also nicht fatale Laufzeit-Fehler, anzeigen. Kein Script-Abbruch!
- E_PARSE: Parser-Fehler während der Übersetzung anzeigen. Parser-Fehler sind Syntaxfehler im Script.
- E_NOTICE: Benachrichtigungen über Teile im Script, die einen Fehler verursachen könnten, anzeigen.
- E_CORE_ERROR: Vom PHP-Kern ausgehende fatale Fehler anzeigen.
- E_CORE_WARNING: Vom PHP-Kern ausgehende Warnungen anzeigen.
- E_COMPILE_ERROR: Fatale Fehler zur Übersetzungszeit anzeigen.
- E_COMPILE_WARNING: Warnungen zur Übersetzungszeit anzeigen.
- E_USER_ERROR: Benutzerdefinierte Fehlermeldungen anzeigen.
- E_USER_WARNING: Benutzerdefinierte Warnungen anzeigen.
- E_USER_NOTICE: Benutzerdefinierte Benachrichtigungen anzeigen.
- E_STRICT: Benachrichtigungen des Laufzeitsystems. (Vorschläge zur Programmcodeänderung)
- E_RECOVERABLE_ERROR: Abfangbare fatale Fehler anzeigen.
- E_DEPRECATED: Warnungen zu Codeteilen anzeigen, die in zukünftigen PHP-Versionen nicht mehr funktionieren werden.
- E_USER_DEPRECATED: Benutzerdefinierte Warnungen, die E_DEPRECATED entsprechen.
- E_ALL: Alle Fehlermeldungen und Warnungen (außer E_STRICT in PHP-Versionen kleiner 6) anzeigen.
Möchten Sie mehrere Konstanten kombinieren, ist dies über die Bitoperatoren möglich. Dazu wird der senkrechte Strich ("|") verwendet. Alle anderen sind für Spezialfälle und werden hier nicht beachtet.
Ein Beispiel:
error_reporting(E_ERROR | E_WARNING);