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

2011-10-11 21:16:23 +08:00
 OnlyBlue
有这么一个句子:

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

其中两个@是什么意思呢?
4568 次点击
所在节点    PHP
11 条回复
harryxu
2011-10-11 21:31:33 +08:00
我的理解就是防止报错,比如 $server 没有定义和赋值过,那么 xxx(@$server) 传进去的应该就是null,而不会出现报错页面。
mywaiting
2011-10-11 21:34:11 +08:00
顺便说一句,这个@很耗费性能的
OnlyBlue
2011-10-11 21:44:34 +08:00
@harryxu 那就是和函数前面的@是相同的作用,即用来隐藏警告了。
yesmeck
2011-10-11 21:45:12 +08:00
强烈不建议用@!碰到过几次莫名奇妙的问题,搞好久最后发现是因为@导致不报错
OnlyBlue
2011-10-11 21:48:04 +08:00
@mywaiting 记住了,谢谢了!
OnlyBlue
2011-10-11 21:58:37 +08:00
@yesmeck 当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
Sunyanzi
2011-10-11 22:01:15 +08:00
darasion
2011-10-11 22:03:21 +08:00
@是为了偷懒对付事用的。
OnlyBlue
2011-10-11 22:04:46 +08:00
@Sunyanzi 谢了,我刚才找了一些中文资料看了,大概理解了是什么意思。
OnlyBlue
2011-10-11 22:05:25 +08:00
@darasion 也会制造隐患吧?
harryxu
2011-10-11 22:14:47 +08:00
感觉一般最好不要用把,通常在好的php代码里不太会看到有用@的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/19329

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX