Capitolo 15. Gestione degli errori

In PHP sono presenti diversi tipi di errori e avvertimenti (warning):

Tabella 15-1. PHP - Tipi di errore

valoresimbolodescrizionenote
1E_ERRORErrore run-time fatale 
2E_WARNINGWarning run-time(errore non fatale) 
4E_PARSEErrore nel parsing in compilazione 
8E_NOTICE Notifiche run-time(meno seri dei warning)  
16E_CORE_ERRORErrore fatale nella fase di startup inizale di PHPSolo PHP 4
32E_CORE_WARNINGWarning (errore non fatale) nella fase di startup inizale di PHPSolo PHP 4
64E_COMPILE_ERRORErrore fatale in fase di compilazioneSolo PHP 4
128E_COMPILE_WARNINGWarning (errore non fatale) in fase di compilazioneSolo PHP 4
256E_USER_ERRORMessagio di errore generato dall'utenteSolo PHP 4
512E_USER_WARNINGMessaggio di avvertimento (warning) generato dall'utenteSolo PHP 4
1024E_USER_NOTICE Messagio di notifica generato dall'utenteSolo PHP 4
 E_ALLTutti i precedentiSolo 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.