In PHP, gli errori sono classificati in diverse categorie. Ecco le principali tipologie di errori e avvisi:
E_ERROR
: Questi sono errori fatali di runtime. Questi tipi di errori causano l’interruzione dell’esecuzione dello script. Ad esempio, chiamare una funzione non definita darà un E_ERROR
.
E_WARNING
: Questi sono errori di runtime non fatali. Nonostante un E_WARNING
, lo script continuerà ad essere eseguito. Un esempio di questo potrebbe essere includere un file che non esiste.
E_PARSE
: Questi sono errori di compilazione generati dal parser. Ad esempio, se si dimentica un ‘;’ alla fine di una linea, si otterrà un E_PARSE
.
E_NOTICE
: Questi sono avvisi di runtime indicativi di errori nel codice che potrebbero essere perfettamente validi, ma che dovrebbero comunque essere controllati. Ad esempio, accedere a una variabile non definita genererà un E_NOTICE
.
E_CORE_ERROR
: Questi sono errori fatali che si verificano durante il processo di avvio iniziale di PHP. Questi sono molto simili a E_ERROR
, tranne il fatto che si verificano durante l’avvio di PHP.
E_CORE_WARNING
: Questi sono avvisi (non fatali) che si verificano durante l’avvio iniziale di PHP. Questi sono simili a E_WARNING
.
E_COMPILE_ERROR
: Questi sono errori fatali di compilazione generati dal Zend Scripting Engine. Questi sono simili a E_ERROR
.
E_COMPILE_WARNING
: Questi sono avvisi di compilazione (non fatali) generati dal motore Zend Script. Questi sono simili a E_WARNING
.
E_USER_ERROR
: Questi sono messaggi di errore generati dall’utente. Questi sono simili a E_ERROR
.
E_USER_WARNING
: Questi sono messaggi di avviso generati dall’utente. Questi sono simili a E_WARNING
.
E_USER_NOTICE
: Questi sono messaggi di avviso generati dall’utente. Questi sono simili a E_NOTICE
.
E_STRICT
: Abilita a PHP di suggerire modifiche al tuo codice per garantire la migliore interoperabilità e compatibilità con le future versioni di PHP.
E_RECOVERABLE_ERROR
: Questi sono errori fatali catturabili. Indicano che un errore pericoloso si è verificato, ma non è stato lasciato in uno stato instabile. Se non viene catturato un errore di tipo E_RECOVERABLE_ERROR
, si comporta come un E_ERROR
.
E_DEPRECATED
: Questi sono avvisi di runtime che indicano l’uso di funzioni PHP deprecate.
E_USER_DEPRECATED
: Questi sono messaggi di avviso generati dall’utente che indicano l’uso di funzioni PHP deprecate.
E_ALL
: Questo è un flag speciale che include tutti gli errori, avvisi, e notifiche eccetto E_STRICT
.
È importante notare che a partire da PHP 8.0, alcune di queste tipologie di errori sono state sostituite da eccezioni, nel tentativo di rendere il linguaggio più coerente e prevedibile. Ad esempio, molti errori fatali che erano precedentemente di tipo E_ERROR
sono ora lanciati come TypeError
o ArgumentCountError
.
Giorgio
Sono un Web Developer con oltre 20 anni di esperienza nello sviluppo di applicazioni web complesse. Specializzato in PHP, gestione di database relazionali e non relazionali, e integrazione di API, realizzo soluzioni robuste e scalabili per soddisfare esigenze aziendali e tecniche. Mi occupo di architetture server-side, ottimizzazione delle performance e automazione dei processi.