php – 身份条件“===”,性能和转换

我总是从stackoverflow的答案中解脱出来,而且我所做的一切“===”优于“==”,因为使用了更严格的比较,你不浪费资源转换价值类型,以便检查一场比赛

我可能以错误的假设来到这里,所以我认为这个问题的一部分是,“我的假设是真的吗?

其次,

我正在专门处理我以数据库“100”形式从数据库获取数据的情况.

我正在比较的代码是…

if ($this->the_user->group == 100) //admin
    {
        Response::redirect('admin/home');
    }
    else   // other
    {
        Response::redirect('user/home');
    }

if ( (int) $this->the_user->group === 100) //admin
    {
        Response::redirect('admin/home');
    }
    else   // other
    {
        Response::redirect('user/home');
    }

甚至

if (intval($this->the_user->group) === 100) //admin
    {
        Response::redirect('admin/home');
    }
    else   // other
    {
        Response::redirect('user/home');
    }

是通过手动转换或转换获得的任何完整性(或性能),以便您可以使用身份(‘===’)比较?

在你的特殊情况下==是更好的选择.正如你(可以在你的代码中看到的)可能已经发现许多数据库函数总是返回字符串,即使你获取一个整数.所以键入严格的比较真的只会使你的代码膨胀.

此外,您还在增加潜力(让我们称之为理论)安全风险.例如. (int)’100AB2’将产生100.在你的情况下,这可能不会发生,但在其他情况下可能会发生.

所以不要过度使用严格的比较,这并不总是好的.你主要只需要在不明确的情况下,像strpos的返回值.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...