PHP soporta un operador de control de errores: el signo de arroba (@). Cuando se antepone a una expresión en PHP, cualquier mensaje de error que pueda ser generado por esa expresión será ignorado.
Si se ha establecido una función para controlar errores de manera personalizada con set_error_handler() entonces todavía será llamada, pero este controlador de errores personalizado puede (y debe) llamar a error_reporting() el cual devolverá 0 cuando la llamada que provocó el error sea precedida por el signo @.
Si la propiedad track_errors está activada, cualquier mensaje de error generado por la expresión será guardado en la variable $php_errormsg. Esta variable se sobrescribe en cada error, así que se debe comprobar antes si se desea utilizar.
1 2 3 4 5 6 7 8 9 10 |
//Evitando los mensajes de error que pueda generar mysql $x = @mysql_connect(); /* Error intencional de archivo */ $my_file = @file ('non_existent_file') or die ("La apertura de archivo ha fallado: el error fue '$php_errormsg'"); // esto funciona con cualquier expresión, no solo con funciones: $value = @$cache[$key]; // no producirá una entrada de tipo "notice" si el índice $key no existe. |
¿Te gustó este artículo?
Si te gustó este artículo, te ha servido o aprendiste algo nuevo; compártelo en tus redes sociales o invítame un cafe.