define(...)和@define(...)之间的区别

时间:2011-07-10 18:23:55

标签: php

快速提问,以下两个声明之间有什么区别:

define('I_LIKE_AT_SIGNS', false);

@define('I_LIKE_AT_SIGNS', true);

即。 @ - 签到了什么?

2 个答案:

答案 0 :(得分:11)

@ symbol是PHP唯一的错误控制操作符,当前置于任何表达式时,与该表达式相关的所有错误都将被抑制。

在这种情况下,与define表达式相关的任何错误都将被取消。

不鼓励或建议使用@错误抑制技术。相反,使用其他错误捕获技术会更好,因此您可以检测并处理错误。

答案 1 :(得分:7)

它可以防止我相信的错误消息。

在PHP中,它在表达式之前使用,以使解释器抑制将从该表达式生成的错误” - 来自维基百科

谨慎使用!!