PHP possiede anche un operatore in grado di controllare gli errori.

La chiocciola “@”, se posta come prefisso a qualsiasi cosa possa generare un errore, lo sopprimerà copiando il messaggio di errore nella variabile globale $php_errormsg (la funzione track_errors deve essere abilitata in php.ini).

Usate questo operatore con attenzione e se lo fate controllate la variabile $php_errormsg subito perché il contenuto viene cancellato ad ogni errore.

Come sostituto a questo operatore è possibile impostare una propria funzione personalizzata che gestisce tutti gli errori che avvengono.
Dopo aver creato la propria funzione basta usare set_error_handler per indicare al PHP che deve usarla come error handler.

<?php
 
/* operatori di controllo degli errori */
$conn = @mysql_connect ('host', 'user', 'pass') or
	die ('No! non si connette !!!');
 
/* anche se avviene un errore il php non lo visualizzerà */
$fd = @fopen ('file_che_non_esiste.estensione', 'r');
 
?>

In questo esempio abbiamo introdotto una cosa molto carina per la gestione degli errori che è tipica del perl e del php. Ovvero l’accopiata or die.

Nel nostro caso se la funzione che connette al database mysql ritorna un errore di qualsiasi genere lo script viene ucciso all’istante visualizzando un messaggio a nostro piacere.

vicius