¿Para qué sirve el símbolo @ (perro) en PHP y cómo funciona la supresión de errores?
¡Hola a todos! Acabo de empezar a estudiar PHP y a menudo veo en código ajeno un símbolo extraño @ antes de funciones. Por ejemplo:
```php
$file = @fopen('config.php', 'r');
$data = @file_get_contents('http://api.example.com');
@$result = someFunction();
```
Entiendo que esto tiene algo que ver con errores, pero no lo comprendo del todo. Cuando escribo código sin @, al acceder a un archivo inexistente o tener problemas de red, me aparecen advertencias (warnings) y errores fatales. Con @, los errores desaparecen. Pero esto no puede ser la solución correcta, ¿verdad?
Tengo varias preguntas:
1. ¿Cómo funciona exactamente el operador @? ¿Suprime todos los errores o solo ciertos tipos?
2. ¿Por qué muchos desarrolladores experimentados critican @ y aconsejan no usarlo?
3. ¿Existen alternativas normales para manejar errores sin suprimirlos?
Por favor, den ejemplos de cuándo @ es realmente necesario y cuándo es una mala práctica. ¡Gracias de antemano!
<<>>