En ocasiones por comodidad, y sobre todo para ahorrarnos dar más información de la cuenta de cara a la seguridad y a que aparezcan mensajes de errores en la pantalla del cliente, es preferible ocultar la información de depuración que nos devuelve el intérprete PHP mediante las típicas líneas de error y warning.
La forma más cómoda para hacerlo instrucción a instrucción es el uso del prefijo @ delante de la misma. El error o warning seguirá existiendo pero no se generará una salida HTML describiéndola.
Por ejemplo, intentaremos borrar el fichero contenido en la variable $fichero
unlink($fichero);
Si el fichero no existe, aparecería un error por pantalla que si ponemos esto:
@unlink($fichero);
No aparecerá. Si la operación de borrado del fichero es para asegurarnos y si no existe hemos conseguido lo que queríamos, nos ahorraremos unas cuantas líneas de código que escribir.
https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.
Ver comentarios
No se debe usar @unlink en lugar de unlink, a menos que estés estés comprobando el valor de retorno de unlink() para tomar la decisión que haga falta.
Lo que quieres hacer en tu caso es desactivar la directiva display_errors en php.ini, mandando los errores exclusivamente al fichero de log, nunca a la pantalla del usuario:
Como bien dice el manual:
"Note: This is a feature to support your development and should never be used on production systems (e.g. systems connected to the internet). "
-- http://www.php.net/manual/es/errorfunc.configuration.php#ini.display-errors
@Keisial: Sé que no es la manera más ortodoxa de hacerlo y para un sistema en producción la forma es la que tu dices, pero es una alternativa más a tener en cuenta.