@ carácter antes de una llamada de función

2 minutos de lectura

avatar de usuario
nixie

¿Cuál es la diferencia entre estas dos llamadas de función en PHP?

init_get($somevariable);

@init_get($somevariable);

  • la “@” cerrará cualquier error y aviso de php

    – Erkan Özkök

    1 de febrero de 2016 a las 10:09

avatar de usuario
sólidogumby

la “@” silenciará cualquier error de php que su función pueda generar.

  • Pero, ¿y si pones @ frente a PHP trigger_error ¿función? Lo he visto en algún código, pero su comportamiento es inconsistente para mí hasta ahora. En algunos casos, veo que el controlador de errores configurado informa el error y, en otros casos, parece que se informa.

    – Fritzmg

    06/03/2016 a las 10:40

  • los @ establecerá temporalmente error_reporting a 0 pero no “suprimirá” el error.

    – solidgumby

    8 de marzo de 2016 a las 12:26


Silencia errores y advertencias. Ver Operadores de control de errores.

avatar de usuario
AntonioCS

Como ya respondió el @ evitará que aparezca el error (si lo hay).
En términos de rendimiento esto no es recomendable.

Lo que está haciendo php es:

  • leyendo el estado de visualización de error
  • configurar la visualización de errores para que no muestre errores
  • ejecutando su función
  • configurar la pantalla de error a su estado anterior

Si no desea que aparezca ningún error, use error_reporting(0);.

O simplemente escribe un código libre de errores: P

  • Prefiero poner cero, pero si eso funciona, genial, no lo sabía 🙂

    – AntonioCS

    5 de enero de 2010 a las 8:54

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

    – spuas

    4 de febrero de 2013 a las 15:12

http://www.faqts.com/knowledge_base/view.phtml/aid/18068/fid/38

Todas las expresiones de PHP se pueden llamar con el prefijo “@”, lo que desactiva el informe de errores para esa expresión en particular.

Como todos dijeron, detiene la salida de errores para esa función en particular. Sin embargo, esto reduce mucho el rendimiento ya que tiene que cambiar la configuración de visualización de error dos veces. Recomendaría NO ignorar las advertencias o errores y corregir el código en su lugar.

  • Gracias a todos por sus respuestas. Ese codigo no es mio, solo estuve mirando el codigo phpBB por curiosidad, asi que no tengo problemas de rendimiento. 🙂 Gracias de nuevo.

    – nixie

    5 de enero de 2010 a las 13:06

  • Gracias a todos por sus respuestas. Ese codigo no es mio, solo estuve mirando el codigo phpBB por curiosidad, asi que no tengo problemas de rendimiento. 🙂 Gracias de nuevo.

    – nixie

    5 de enero de 2010 a las 13:06

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad