@ character before a function call

前端 未结 5 2028
迷失自我
迷失自我 2020-12-13 23:07

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

init_get($somevariable);

@init_get($somevariable);
相关标签:
5条回答
  • 2020-12-13 23:16

    http://www.faqts.com/knowledge_base/view.phtml/aid/18068/fid/38

    All PHP expressions can be called with the "@" prefix, which turns off error reporting for that particular expression.

    0 讨论(0)
  • 2020-12-13 23:31

    It silences errors and warnings. See Error Control Operators.

    0 讨论(0)
  • 2020-12-13 23:33

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

    0 讨论(0)
  • 2020-12-13 23:34

    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

    0 讨论(0)
  • 2020-12-13 23:34

    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.

    0 讨论(0)
提交回复
热议问题