2010-10-21 28 views
22

Básicamente, he visto personas que usan @ antes de sus llamadas de función, no para cada función, sino para algunas funciones de extensión como file_get_contents(), mysql_connect() y así sucesivamente.funciones PHP y @functions

Y sí, la pregunta es: ¿Para qué hay estos @ s antes de llamadas a funciones?

O, en otras palabras, ¿cuál es la diferencia entre @file_get_contents() y file_get_contents()?

+1

Ver [? Referencia - ¿Qué significa este símbolo en PHP] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean -en-php) – Gordon

+0

posible duplicado de [¿Qué significa @ en PHP?] (http://stackoverflow.com/questions/3621215/what-does-mean-in-php) – Gordon

Respuesta

33

@ es un error control operator. Básicamente es la supresión de errores.

+5

@Tom Espero que entiendas de esta explicación de que este símbolo nunca debe usarse. –

+0

@Col. Metralla ¡Por supuesto! Siempre estoy interesado en cada error, por lo que al menos hay algo que arreglar. – jolt

1

El símbolo @ delante de una función evita que se muestren errores cuando se llama a la función.

+0

http://php.net/manual/en/book.errorfunc.php – Ted

2

@function no muestra ningún mensaje de error en su salida HTML, mientras que una llamada a función normal lo hará.

+0

Preguntándose por qué está downvoted. – fabrik

+0

¿qué es? No entiendo. – SkypeMeSM

+0

@fabrik por el mismo motivo que el suyo. Pero mientras que el suyo es ambiguo (solo "salida"), este es claramente estados de salida HTML, que, por supuesto, es una tontería. El control de errores no tiene nada que ver con la salida del programa. –

0

Tengo una duda similar acerca de @ usado en frente de las funciones. Para evitar esto, hice algunas verificaciones antes de la llamada a la función. Mi ejemplo es:

if (is_file($filename)) $timestamp = filemtime($filename);