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

php – 哪个更快 – 一个布尔变量检查或is_null()?

发布时间:2020-12-13 22:14:33 所属栏目:PHP教程 来源:网络整理
导读:假设我正在创建一个会话类,相关实现如下: public class Session(){ private $id; private $user;} 如果会话已登录,$user字段包含User类型的对象,如果会话未登录到站点,则为$null. $id是会话ID. 假设我现在想知道用户是否已登录.显然我可以检查$user是否为nu
假设我正在创建一个会话类,相关实现如下:

public class Session()
{
    private $id;
    private $user;
}

如果会话已登录,$user字段包含User类型的对象,如果会话未登录到站点,则为$null. $id是会话ID.

假设我现在想知道用户是否已登录.显然我可以检查$user是否为null,如果是,那么用户没有登录 – 如下所示:

public class Session()
{
    private $id;
    private $user;

    public function isLoggedIn()
    {
        return !is_null($user);
    }
}

或者,我可以存储一个布尔会话变量,$loggedIn或者其他东西,在登录时设置为false,否则在构造函数中初始化为false以进行测试:

public class Session()
{
    private $id;
    private $user;
    private $loggedIn;

    public function isLoggedIn()
    {
        return $loggedIn;
    }
}

一种方法会产生比另一种方法更好的性能吗?如果是这样,哪个,为什么?或者,出于与性能无关的任何原因,一种方法是否优于另一种方法?

解决方法

越简单越好.如果引入一个新变量来跟踪$user是否为null,那么您还会引入is_null($user)和$loggedIn不匹配的可能性.避免担心这一点的麻烦比任何可能的性能微观优化都要值得多.

(编辑:李大同)

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

    推荐文章
      热点阅读