加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP @而不是isset来测试$_GET值

发布时间:2020-12-13 17:23:21 所属栏目:PHP教程 来源:网络整理
导读:给我一个很好的理由这样做 if( isset($_GET['key']) ($_GET['key'] === '123') ){... 而不是这个 if( @$_GET['key'] === '123' ){... 我要求这个非常具体的代码案例,而不是一般的! 以下原因不受欢迎: “使用@会使应用程序减慢几纳秒,因为 无论如何都会产生
给我一个很好的理由这样做

if( isset($_GET['key']) && ($_GET['key'] === '123') )
{...

而不是这个

if( @$_GET['key'] === '123' )
{...

我要求这个非常具体的代码案例,而不是一般的!

以下原因不受欢迎:

>“使用@会使应用程序减慢几纳秒,因为
无论如何都会产生错误(即使它被压制).“好吧,我更喜欢慢
代码但更具可读性.
>“使用@是坏习惯.”一般来说这可能是真的,但在这种情况下我并不相信(而且坏习惯可能会
取决于上下文,在PHP手册的功能,如fopen他们
建议在某些情况下使用@,请参阅错误/例外
在http://www.php.net/manual/en/function.fopen.php)

解决方法

性能影响实际上并不是针对此示例的最佳参数,您必须在自己的应用程序中测量性能以确定这是否是一个问题.如果未设置大量正在检查的项目,或者您在循环中放置了诸如此类的检查,则更有可能导致速度变慢.

与使用@运算符相关的主要问题是它很可能成为代码中的约定,因此虽然您的示例看似无害,但您可能会在以后发现自己或您的团队使用:

if( @IsAvailable() ) {

并且错误抑制开始隐藏您没有预期的真实错误以及您所做的错误 – 并且您根本不知道发生了什么,因为您根本没有获得异常信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读