Предположим, я создаю класс сеанса с соответствующей реализацией, как показано ниже:
public class Session()
{
private $id;
private $user;
}
Поле $user
содержит объект типа User, если сеанс вошел в систему, и равен нулю, еслисеанс не авторизован на сайте.$id
является идентификатором сеанса.
Предположим, теперь я хочу выяснить, вошел ли пользователь в систему. Очевидно, я мог бы проверить, равен ли $ user нулю, если это так, то пользователь не является пользователем.не вошли в систему - что-то вроде этого:
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;
}
}
Будет ли один подход привести к более высокой производительности, чем другой здесь?Если да, то что и почему?В качестве альтернативы, является ли один подход предпочтительнее другого по любой причине, не связанной с производительностью?