Тут у меня два вопроса...
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
- содержат массивы данных.