It is an Error Control Operator, that will mask (prevent from being displayed) any error the getimagesize
function could generate.
It it generally not considered a good practice to use it : it makes your code really harder to debug (if there is an error, you won't know about it) :
Currently the "@" error-control
operator prefix will even disable
error reporting for critical errors
that will terminate script execution.
Among other things, this means that if
you use "@" to suppress errors from a
certain function and either it isn't
available or has been mistyped, the
script will die right there with no
indication as to why.
There is even a PHP extension, called scream, that disables this operator -- can be pretty useful when you are maintaintaing an apllication that used this operator a lot...
Generally, it is better to set error_reporting
(see also) level and display_errors
so that errors are displayed in development, and not in production -- that's way more useful that just always hiding them !