PHP supporte un opérateur de contrôle d'erreur : c'est @.
Lorsque cet opérateur est ajouté en préfixe d'une
expression PHP, les messages d'erreur qui peuvent être
générés par cette expression seront ignorés.
Si l'option
track_errors
est activée, les messages d'erreurs générés
par une expression seront sauvés dans la variable globale
$php_errormsg.
Cette variable sera écrasée à chaque erreur.
Il faut alors la surveiller souvent pour pouvoir l'utiliser.
Exemple 15-8. Opérateur de contrôle d'erreur
<?php /* Erreur intentionnelle (le fichier n'existe pas): */ $mon_fichier = @file ('non_persistent_file') or die ("Impossible d'ouvrir le fichier : L'erreur est : '$php_errormsg'");
// Cela fonctionne avec n'importe quelle expression, pas seulement les fonctions $value = @$cache[$key]; // la ligne ci-dessus n'affichera pas d'alerte si la clé $key du tableau n'existe pas
?>
Note :
L'opérateur @ ne fonctionne qu'avec les expressions. La règle
générale de fonctionnement est la suivante : si vous pouvez prendre
la valeur de quelque chose, vous pouvez le préfixer avec @. Par exemple,
vous pouvez ajouter @ aux variables, fonctions, Ã
include(), aux constantes, etc. Vous ne pourrez
pas le faire avec des éléments de langage tels que les classes,
if et foreach, etc.
En fait, l'opérateur "@" va aussi désactiver les rapports
d'erreurs critiques, qui stoppent l'exécution du script. Entre autres,
si vous utilisez "@" pour supprimer les erreurs de certaines
fonctions, et que cette fonction n'existe pas, ou qu'elle
a été mal orthographiée, vous n'aurez aucune indication.