set_error_handler 錯誤攔截是否假設有 @ 則不報?

发布于 2022-09-07 03:30:12 字数 243 浏览 16 评论 0

clipboard.png

有些錯誤是

Undefined index: password

類似這種
我已經加上 @不用報錯
但是在 set_error_handler 還是會報錯....
能不能略過有 @ 的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怀里藏娇 2022-09-14 03:30:12

错误都是有意义的。

比如这个Undefined index,80%的情况是,有个参数没传进来,不在$_GET或者相应的数组里,引用个数组不存在的东西当然就要报错咯。但你不能为了不想看到就关掉它,这样当你想debug时,打开error.log一看,干干净净,所有应该发生问题的地方全被@给怼掉了,咋办?到时候只能绕更大的弯。

说回这个问题。其实解决很简单的,比如你要取个$_GET['id'],有没有你可以先去判断下,既然它是数组,那么肯定有方法检测这个键名是否存在咯,或者是一个固定的写法、或者是API,肯定有方法的,那么PHP里就可以用array_key_exists方法先去做个判断,如果有再取值,没有给它丢个空字符串或者其它什么标识就好了呀!比如:

$userid = array_key_exists('id', $_GET) ? $_GET['id'] : '';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文