Php @$\u POST与$\u POST之间的区别是什么。。。。?

Php @$\u POST与$\u POST之间的区别是什么。。。。?,php,html,forms,post,Php,Html,Forms,Post,在用户刷新浏览器后,我正在寻找不同的方法将用户的输入保存到表单中,我遇到了以下问题: value="<?php echo @$_POST['blah'];?>"> value=”“> 我也看到了如下情况: value="<?php echo $_POST['blah'];?>"> value=”“> 他们似乎都做了同样的事情。在$\u POST数组前面加上的@符号的意义是什么?一种方式比另一种方式更可取吗?符号@可以防止帖子抛出的任何错误。例如,当它未

在用户刷新浏览器后,我正在寻找不同的方法将用户的输入保存到表单中,我遇到了以下问题:

value="<?php echo @$_POST['blah'];?>">
value=”“>
我也看到了如下情况:

value="<?php echo $_POST['blah'];?>">
value=”“>

他们似乎都做了同样的事情。在$\u POST数组前面加上的@符号的意义是什么?一种方式比另一种方式更可取吗?

符号
@
可以防止帖子抛出的任何错误。例如,当它未定义时,您不会收到警告。

@
是PHP的。基本上,将其放在表达式(如数组访问或函数调用)之前将抑制通常会生成的任何错误。在功能上没有区别,只是根据您的设置生成、记录或显示哪些警告/通知

在这种情况下,如果$\u POST数组中未定义
'blah'
,则第一个表单(带@)将不会生成通知,而第二个表单将生成通知

至于什么是首选,根据我的经验,
@
通常是不被鼓励的,因为任何能够抑制错误的东西都是不被鼓励的——更好的做法是先主动检查东西。除其他原因外,PHP文档给出了对此保持警惕的理由:

警告:当前“@”错误控制运算符前缀甚至会禁用将终止脚本执行的关键错误的错误报告。除此之外,这意味着如果您使用“@”来抑制某个函数的错误,并且该函数不可用或输入错误,那么脚本将立即消失,而没有说明原因


TL;DR:它抑制错误,除非您有充分的理由这样做,否则通常不鼓励这样做。最好是积极主动。

在Php中放置@是为了防止显示我们在该部分代码中的系统错误。

它被称为“at符号”,因此现在您可以在网络中搜索它。这就是为什么我禁用了没有告诉我任何信息的恼人警告。