Les erreurs peuvent être classifiées selon leur type et leur gravité.
Les erreurs peuvent être susceptibles de provoquer simplement des avertissements sans affecter le programme en cours (WARNING et NOTICE), d'autres entraînent l'interruption définitive du script (ERROR).
Les erreurs sont classifiées selon cinq types différents :
Type | valeur | Description |
---|---|---|
E_ERROR | 1 | représente une erreur impossible à corriger. Elle est différente d'une erreur d'analyse. |
E_WARNING | 2 | représente un message d'alerte provoquée par une erreur qui n'interrompt pas le script. |
E_PARSE | 4 | représente une erreur d'analyse dans le domaine syntaxique dont la correction est impossible. |
E_NOTICE | 8 | représente un avertissement ou une erreur n'ayant pas provoqué un arrêt du script. |
E_CORE_ERROR | 16 | représente un avertissement ou une erreur n'ayant pas provoqué un arrêt du script. |
E_CORE_WARNING | 32 | représente un avertissement ou une erreur n'ayant pas provoqué un arrêt du script. |
E_COMPILE_ERROR | 64 | représente une erreur de compilation provoquant l'interruption du script. |
E_COMPILE_WARNING | 128 | représente un message d'avertissement provenant du compilateur sans interrompre le script. |
E_USER_ERROR | 256 | représente une erreur due à l'utilisateur provoquant l'interruption du script. |
E_USER_WARNING | 512 | représente un message d'avertissement dû à l'utilisateur ne provoquant pas l'arrêt du script. |
E_USER_NOTICE | 1024 | représente un message d'avertissement ou une erreur n'ayant pas provoqué l'arrêt du script dû à l'utilisateur. |
E_ALL | 2047 | représente toutes les constantes E_.... |
E_STRICT | 2048 | permet d'obtenir des notifications pour la modification du code (Depuis PHP 5). |
Les valeurs d'erreur peuvent être combinées dans les fonctions par l'intermédiaire des opérateurs au niveau du bit.
error_reporting (E_ERROR | E_WARNING | E_PARSE); error_reporting (1 | 2 | 4); // (0001 | 0010 | 0100 = 0111)2 correspond à (7)10 error_reporting(7);
Le fichier de configuration de PHP 3 php3.ini n'accepte quant à lui qu'une valeur numérique devant l'option error_reporting, puisque les constantes n'y sont pas utilisables, ce qui en revanche, n'est pas le cas pour PHP 4, paramétré par défaut à E_ALL.
[PHP] error_reporting= E_ALL; #display all errors, warnings and notices