假设我正在创建一个 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/