@ character before a function call

Viewed 63790

What is the difference between these two function calls in PHP?

init_get($somevariable);

@init_get($somevariable);
5 Answers

the "@" will silence any php errors your function could raise.

As already answered the @ will stop the error (if any) from showing up.
In terms of performance this is not recommended.

What php is doing is:

  • reading the error display state
  • setting the error display to show no errors
  • running your function
  • setting the error display to it's previous state

If you don't want any errors showing up use error_reporting(0);.

Or just write bug free code :P

As everyone said, it stops the output of errors for that particular function. However, this decreases performance greatly since it has to change the error display setting twice. I would recommend NOT ignoring warnings or errors and fixing the code instead.

Related