php - 哪个更快 - bool 变量检查或 is_null()?

标签 php performance

假设我正在创建一个 session 类,相关实现如下:

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

如果 session 已登录,$user 字段包含一个 User 类型的对象,如果 session 未登录到站点,则该字段为 null。 $id 是 session ID。

假设我现在想知道用户是否已登录。显然我可以检查 $user 是否为空,如果是则用户未登录 - 如下所示:

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

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

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

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

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

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

最佳答案

在这个用户贡献的帖子 (link to post) 中检查 php.net 的基准,我们看到 =====is_null 快得多。

关于php - 哪个更快 - bool 变量检查或 is_null()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8989961/

相关文章:

java - 我将如何加快这个程序?

java - Android引起的java.lang.outofmemory错误

c# - 为什么 Thread.Sleep() 占用大量 CPU?

PHP DateInterval 每 x 周选择一周中的几天

php - 如何让用户插入列表中的任意位置?

php - Mysql 查询未获取所有父 ID

R:通过仅考虑 NA 值的位置来对矩阵行进行分组的快速方法

php - Codeigniter 3.0.3 上的 num_rows 问题

php - 关于新用户注册的通知

c# - 使用 System.Linq 占用多少空间?