这是一种可以接受的做法,还是可以接受的使用PHP错误抑制的方式?
if (isset($_REQUEST['id']) && $_REQUEST['id'] == 6) {
echo 'hi';
}
if (@$_REQUEST['id'] == 6) {
echo 'hi';
}编辑:
我也这么想。代码(和想法)来自friend。
谢谢你证明我是对的。:)
发布于 2010-04-08 21:48:06
使用错误抑制并不是一个很好的做法。使用$_REQUEST根本不是一种好的做法。只需使用isset()或!empty()或其他任何方法,不要偷懒。
还有一件事,在使用isset()时使用右括号是一个“好习惯”:
发布于 2010-04-08 21:52:02
使用@ only隐藏错误将禁止显示错误,而不是创建错误。所以如果你不先检查isset(),你会从这个错误中得到一个小的性能损失。
发布于 2010-04-08 21:49:44
不,在我看来,这不是一种可以接受的做法。除了看起来草率之外,即使使用错误抑制,自定义错误处理程序仍然会被触发。
manual为完全避免使用它提供了更多的理由:
目前,"@“错误控制操作符前缀甚至会禁用终止脚本执行的关键错误的错误报告。其中,这意味着如果您使用"@“来隐藏来自某个函数的错误,并且该函数不可用或输入错误,则脚本将立即终止,并且不会提示原因。
https://stackoverflow.com/questions/2600312
复制相似问题