OnlyBlue
V2EX  ›  PHP

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

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