@JohnDidact
Нуб во всём

В каких случаях данные из сессии сериализуются и пишутся в файл?

Тут у меня два вопроса...
1. В каких случаях данные из сессии сериализуются и пишутся в файл? Если в session_start() указать опцию на то, чтобы файл не блокировался, то данные из файла сессии просто считаются, десериализуются и запишутся в массив $_SESSION. Если эту опцию не указать, то данные с файла считываются и файл блокируется. После завершения скрипта или при вызове session_write_close() данные сериализуются, пишутся в файл и он будет разблокирован. Так вот, если данные не будут изменены (это как то отслеживается?), то файл всё равно будет переписан или нет?
2. Целесообразно ли или нет, сравнивать массивы и если массивы разные, то записывать данные из одного массива в другой? Например, как будет менее ресурсоёмко в случае, если массивы чаще одинаковые, чем разные?
$_SESSION['user'] === $this->user or $_SESSION['user'] = $this->user;
$_SESSION['client'] === $this->client or $_SESSION['client'] = $this->client;
// ...
или
$_SESSION = array(
 'user' => $this->user,
 'client' => $this->client,
 // ...
);


UPD. $_SESSION['user'], $_SESSION['client'], $this->user, $this->client - содержат массивы данных.
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
1. Должен быть перезаписан
2. Без разницы. Можо делать или так, или эдак. Или и так и эдак.

Сама по себе операция какая-то бессмысленная. Не нужно хранить объекты в сессии. Можно хранить в сессии пару атрибутов, которые инжектить в объект при создании.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы