In PHP sono presenti diversi tipi di errori e avvertimenti (warning):
Tabella 15-1. PHP - Tipi di errore
valore | simbolo | descrizione | note |
---|---|---|---|
1 | E_ERROR | Errore run-time fatale | |
2 | E_WARNING | Warning run-time(errore non fatale) | |
4 | E_PARSE | Errore nel parsing in compilazione | |
8 | E_NOTICE | Notifiche run-time(meno seri dei warning) | |
16 | E_CORE_ERROR | Errore fatale nella fase di startup inizale di PHP | Solo PHP 4 |
32 | E_CORE_WARNING | Warning (errore non fatale) nella fase di startup inizale di PHP | Solo PHP 4 |
64 | E_COMPILE_ERROR | Errore fatale in fase di compilazione | Solo PHP 4 |
128 | E_COMPILE_WARNING | Warning (errore non fatale) in fase di compilazione | Solo PHP 4 |
256 | E_USER_ERROR | Messagio di errore generato dall'utente | Solo PHP 4 |
512 | E_USER_WARNING | Messaggio di avvertimento (warning) generato dall'utente | Solo PHP 4 |
1024 | E_USER_NOTICE | Messagio di notifica generato dall'utente | Solo PHP 4 |
E_ALL | Tutti i precedenti | Solo PHP 4 |
I valori presenti nella tabella (sia numerici che simbolici) sono utilizzati per creare delle bitmask per specificare quali errori da cercare. Si possono usare gli operatori sui bit '|','&' e '~' per combinare questi valori e mascherare certi tipi di errori. Le configurazioni predefinite per effettuare il report di tutti gli errori eccetto le notifiche sono E_ALL & ~E_NOTICE per PHP4 e 7 per PHP3 (PHP3 non supporta le costanti simboliche).
Le configurazioni possono essere cambiate nel file ini con la direttiva error_reporting. Si puņ anche utilizzare il file di configurazione di Apache httpd.conf con la direttiva php_error_reporting (php3_error_reporting per PHP 3) oppure ancora in fase di esecuzione di uno script con la funzione error_reporting().
Attenzione |
Quando si esegue un'upgrade del codice o dei server da PHP3 a PHP4 č necessario controllare questi settaggi e le chiamate a error_reporting() oppure potrebbe disabilitarsi il report dei nuovi tipi di errore, specialmente E_COMPILE_ERROR. Questo potrebbe portare a documenti vuoti senza alcun feedback sulle cause o dove guardare per trovare il problema. |
Tutte le espressioni PHP possono anche venir chiamate con il prefisso "@", che disabilita il report degli errori per quella particolare espressione. Se capita un errore in una di queste espressioni e l'opzione track_errors č attivata, si puņ trovare il messaggio d'errore nella variabile globale $php_errormsg.
Attenzione |
Attualmente il prefisso "@" disabilita il report anche per gli errori critici che terminano l'esecuzione dello script. |