Reputation: 5148
i wonder what does @ means when we use it before include or require in php ?!
such as :
@include('block.php');
maybe its a noob question , but i need to know it guys ?!
so sorry for that
Upvotes: 6
Views: 996
Reputation: 382696
@ is the error supression operator in php, you won't see any error if the file is not found in that statement.
Upvotes: 0
Reputation: 138051
@
is the shut-up operator. If something goes wrong, no error message will be shown. It's usually a bad practice to use it; first because error messages happen for a good reason, and second because it's ridiculously slow for what it does.
It's roughly equivalent to wrapping the statement in:
$oldErrorLevel = error_reporting(0);
// the statement
error_reporting($oldErrorLevel);
Here's the link to the PHP manual page documenting it.
Upvotes: 12
Reputation: 180014
@ before a function call suppresses any errors that function would normally output.
In the case of include
, the person doing that wants the script to keep going if block.php
isn't present. A better way of doing this is usually to do something like this instead:
if(is_readable('block.php')) {
include('block.php');
}
Upvotes: 3