I hate that google can not search for symbols. I saw this in some sample code and wondered why there is an @ sign before the readfile function:
@readfile($filename);
What does it mean different to without an @ symbol?
I hate that google can not search for symbols. I saw this in some sample code and wondered why there is an @ sign before the readfile function:
@readfile($filename);
What does it mean different to without an @ symbol?
An @
before a command in PHP means that no errors are printed. It's called the error control operator.
If you removed the @
and readfile
would encounter an error (such as not being able to read the file), then—depending on your PHP settings—the error message will be amidst your site content; something you rarely, if ever, want. (It gets worse even, if this happens before a call to header()
or start_session()
because once content is sent, the headers can't be written anymore.)
It is PHP's error suppression operator. With it you can suppress error messages.
Tip:
Simply don’t use the error suppression operator with speed-critical code.
Future:
Because @
operator is very slow, it won't work on ini_set
eg @ini_set
in future version of PHP eg PHP6
Important Reading: