2010-01-04 13 views

Respuesta

154

la "@" silenciará cualquier error de php que su función pueda provocar.

+15

También se silenciarán los avisos, por lo que no solo errores – lugte098

+0

¿Pero qué pasa si coloca '@' delante de la función 'trigger_error' de PHP? Lo he visto en algún código, pero su comportamiento es inconsistente para mí hasta ahora. En algunos casos, sí veo el error informado por el controlador de error configurado y, en otros casos, parece ser informado. – fritzmg

+1

El '@' establecerá temporalmente 'error_reporting' en 0 pero no" suprimirá "el error. – solidgumby

27

Como ya se ha respondido, el @ detendrá el error (si existe) de aparecer.
En términos de rendimiento, esto no se recomienda.

Lo que PHP está haciendo es:

  • leer el estado de visualización de error
  • establecer la indicación de error para mostrar ningún error
  • el funcionamiento de su función
  • establecer la indicación de error a su estado anterior

Si no desea que aparezcan errores, use error_reporting(0);.

o simplemente escribir código libre de errores: P

+3

O 'error_reporting (NONE);' –

+0

Prefiere poner cero, pero si eso funciona, genial no lo sabía :) – AntonioCS

+0

¿Qué pasa con las funciones que no controla, como el correo, por ejemplo? ¿Qué otras opciones existen? Estoy usando @ en este momento, pero sería genial poder hacerlo de otra manera – spuas

6

Como todo el mundo dice, se detiene la salida de errores para esa función en particular. Sin embargo, esto disminuye enormemente el rendimiento ya que tiene que cambiar la configuración de visualización de errores dos veces. Yo recomendaría NO ignorar advertencias o errores y corregir el código en su lugar.

+0

Gracias a todos por sus respuestas. Ese código no es mío, solo busqué el código phpBB por curiosidad, así que no tengo problemas de rendimiento. :) Gracias de nuevo. – nixie

Cuestiones relacionadas