OnlyBlue
V2EX  ›  PHP

PHP函数参数前的@是什么意思?

  •  
  •   OnlyBlue · Oct 11, 2011 · 5748 views
    This topic created in 5502 days ago, the information mentioned may be changed or developed.
    有这么一个句子:

    ClassA::init(@$server, @$path);

    其中两个@是什么意思呢?
    11 replies  •  1970-01-01 08:00:00 +08:00
    harryxu
    harryxu
    Oct 11, 2011
    1
    我的理解就是防止报错,比如 $server 没有定义和赋值过,那么 xxx(@$server) 传进去的应该就是null,而不会出现报错页面。
    mywaiting
    mywaiting
    Oct 11, 2011
    2
    顺便说一句,这个@很耗费性能的
    OnlyBlue
    OnlyBlue
    OP
    Oct 11, 2011
    3
    @harryxu 那就是和函数前面的@是相同的作用,即用来隐藏警告了。
    yesmeck
    yesmeck
    Oct 11, 2011
    4
    强烈不建议用@!碰到过几次莫名奇妙的问题,搞好久最后发现是因为@导致不报错
    OnlyBlue
    OnlyBlue
    OP
    Oct 11, 2011
    5
    @mywaiting 记住了,谢谢了!
    OnlyBlue
    OnlyBlue
    OP
    Oct 11, 2011
    6
    @yesmeck 当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
    darasion
    darasion
    Oct 11, 2011
    8
    @是为了偷懒对付事用的。
    OnlyBlue
    OnlyBlue
    OP
    Oct 11, 2011
    9
    @Sunyanzi 谢了,我刚才找了一些中文资料看了,大概理解了是什么意思。
    OnlyBlue
    OnlyBlue
    OP
    Oct 11, 2011
    10
    @darasion 也会制造隐患吧?
    harryxu
    harryxu
    Oct 11, 2011
    11
    感觉一般最好不要用把,通常在好的php代码里不太会看到有用@的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1547 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:29 · PVG 07:29 · LAX 15:29 · JFK 18:29
    ♥ Do have faith in what you're doing.