假设我正在创建一个会话类,相关实现如下:
public class Session()
{
private $id;
private $user;
}
Run Code Online (Sandbox Code Playgroud)
$user如果会话已登录,则该字段包含User类型的对象,如果会话未登录到站点,则该字段为null.这$id是会话ID.
假设我现在想知道用户是否已登录.显然我可以检查$ user是否为null,如果是,那么用户没有登录 - 如下所示:
public class Session()
{
private $id;
private $user;
public function isLoggedIn()
{
return !is_null($user);
}
}
Run Code Online (Sandbox Code Playgroud)
或者,我可以存储一个布尔会话变量,$loggedIn或者其他东西,在登录时设置为false,否则在构造函数中初始化为false,而不是测试:
public class Session()
{
private $id;
private $user;
private $loggedIn;
public function isLoggedIn()
{
return $loggedIn;
}
}
Run Code Online (Sandbox Code Playgroud)
一种方法会产生比另一种方法更好的性能吗?如果是这样,哪个,为什么?或者,出于与性能无关的任何原因,一种方法是否优于另一种方法?
越简单越好.如果您引入一个新变量来跟踪$ user是否为null,那么您还会引入is_null($ user)和$ loggedIn不匹配的可能性.避免担心这一点的麻烦比任何可能的性能微观优化都要值得多.
| 归档时间: |
|
| 查看次数: |
2322 次 |
| 最近记录: |