php4people … 13% refresh

5 Aprile 2008

[fp5] error_reporting()

Archiviato in: » error_reporting(), - fp » Funzioni, Fondamenti di PHP » — Tag: — ferenir @ 13:22

Si è già accennato a come il linguaggio PHP sia “pignolo” in fatto di grammatica. Basta un punto e virgola non messo e accade il disastro. non sempre è così. Ad esempio con le parentesi graffe della dichiarazione di una funzione… cosa che per ora non deve interessare. Esiste una funzione che permette di mandare su schermo eventuali errori presenti nel codice sorgente. Questa funzione ha dei limiti ma è utilissima per monitorare diverse situazioni. Si tratta di una delle funzioni standard (ne esistono centinaia) che PHP ha già dichiarate di default ad uso e consumo del programmatore.

error_reporting();

Le informazioni inseribili tra le parentesi sono stringe eccezionali il termine comune è costante ma io preferisco questo che definiscono il tipo di avvisi d’errore da stampare su schermo. Per “stringa eccezionale” intendo una stringa che non necessita di apici per essere dichiarata anche nel caso in cui contenga lettere. Si tratta di informazioni preimpostate a cui corrispondono azioni definite.

E’ possibile “spegnere” ogni stampa di errore settando a 0 la variabile di report:

error_reporting (0); 

Oppure è possibile definire il tipo di errore da riportare. Se lo zero blocca ogni report di errore, il suo opposto E_ALL manda in output su schermo non solo gli errori ma anche note significative (a detta del motore PHP) sull’esecuzione dello script:

error_reporting (E_ALL); 

 L’immagine seguente, presa dalla pagina di riferimento della funzione di error_reporting() su php.net – sito ufficiale del Linguaggio PHP - riporta tutte le informazioni accettate dalla funzione:
error_reporting
Se hai necessità di report d’errori più selettivi per i tuoi script ti consiglio di darci un’occhiata. :)
L’utilità di un “rapporto di errore” durante la programmazione di uno script è fuori discussione.
Gestire l’informazione d’errore è semplice, grazie alla dichiarazione della funzione impostata dal PHP Group.
Provo a mandare in esecuzione questo script:

<?php
error_reporting(E_ALL);
$a = $a + 1;
esempio();
?>

E ottengo due avvisi differenti:

error_reporting_output

Il primo dei due (Notice:) è una “notifica” che non pregiudica l’esecuzione dello script: c’è una variabile ($a) coinvolta in un’operazione aritmetica ma che non è stata definita prima.  In realtà PHP la “definisce” nel momento stesso in cui è chiamato ad operare su di essa ma mi notifica comunque il “difetto”.
Una notifica del genere è utile in script con centinaia di righe di codice dove potrebbe sfuggire l’assegnazione di un valore predefinito ad una variabile fondamentale.

Il secondo (Fatal error:) è un “errore fatale” che blocca l’esecuzione dello script: si è tentato di chiamare in esecuzione una funzione mai dichiarata. Lo script non la trova e blocca tutto :(

Articoli precedenti »

Blog su WordPress.com.