首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >isset($var)与@$var

isset($var)与@$var
EN

Stack Overflow用户
提问于 2010-04-08 21:44:00
回答 5查看 1.4K关注 0票数 13

这是一种可以接受的做法,还是可以接受的使用PHP错误抑制的方式?

代码语言:javascript
复制
if (isset($_REQUEST['id']) && $_REQUEST['id'] == 6) {
  echo 'hi';
}

if (@$_REQUEST['id'] == 6) {
  echo 'hi';
}

编辑:

我也这么想。代码(和想法)来自friend。

谢谢你证明我是对的。:)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-08 21:48:06

使用错误抑制并不是一个很好的做法。使用$_REQUEST根本不是一种好的做法。只需使用isset()或!empty()或其他任何方法,不要偷懒。

还有一件事,在使用isset()时使用右括号是一个“好习惯”:

票数 13
EN

Stack Overflow用户

发布于 2010-04-08 21:52:02

使用@ only隐藏错误将禁止显示错误,而不是创建错误。所以如果你不先检查isset(),你会从这个错误中得到一个小的性能损失。

票数 16
EN

Stack Overflow用户

发布于 2010-04-08 21:49:44

不,在我看来,这不是一种可以接受的做法。除了看起来草率之外,即使使用错误抑制,自定义错误处理程序仍然会被触发。

manual为完全避免使用它提供了更多的理由:

目前,"@“错误控制操作符前缀甚至会禁用终止脚本执行的关键错误的错误报告。其中,这意味着如果您使用"@“来隐藏来自某个函数的错误,并且该函数不可用或输入错误,则脚本将立即终止,并且不会提示原因。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2600312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档