2010-09-29 28 views
1

一个变量前面时,@符号做我看到一些代码,看起来像这样:是什么在PHP

if(@$_POST['myvar']) 

什么是@符号在这种情况下怎么办?

回答

4

它抑制任何和所有的错误信息,警告或引起你前面加上它来表达通知。在这种情况下:if(@$_POST['myvar'])它可能正在被使用,因为如果$_POST['myvar']未设置,原作者不希望发出通知。

+0

正确的答案。用法:如果项目上的标志设置为启用错误报告,则可以通过使用此方法向您报告的错误添加一些上下文。即:对其进行编码,以便您可以打开或关闭它。有这样做和昂贵的廉价方法;我更喜欢廉价和肮脏的方法。 – Geekster 2010-09-29 16:46:23

6

它抑制被打印的任何警告/通知/错误。例如,如果我们未定义$_POST['myvar'],PHP可能会输出Undefined index通知。 @可以防止这种行为。

话虽这么说,它被认为是不好的做法,任意抑制警告。你可以,相反,检查变量被设置与if (isset($_POST['myvar']) && $_POST['myvar'])

http://www.php.net/manual/en/language.operators.errorcontrol.php

+2

你应该从'isset删除'@'(@ $ _ POST [ 'MYVAR'])';) – 2010-09-29 16:47:10

+0

谢谢!这是使用ISET的全部重点,但我不小心把它留在那里lol ------- – webbiedave 2010-09-29 17:05:30