PHP Conference Nagoya 2025

SessionHandlerInterface::read

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::readЧитает данные сессии

Описание

public SessionHandlerInterface::read(string $id): string|false

Читает данные сессии из хранилища сессий и возвращает результат. Вызывается сразу после старта сессии или когда вызвана session_start(). Обратите внимание, что перед вызовом этого метода будет вызвана функция SessionHandlerInterface::open().

Этот метод вызывается PHP когда стартует сессия. Этот метод должен получить данные сессии из хранилища по указанному её идентификатору. Строка, возвращаемая этим методом, должна иметь тот же сериализованный формат, что и исходная, которая передавалась функции SessionHandlerInterface::write(). Если запись не найдена, возвращается false.

Данные, возвращаемые этим методом, будут расшифрованы внутри PHP, используя метод десериализации, указанный в session.serialize_handler. Полученные данные будут использованы для заполнения суперглобального массива $_SESSION.

Обратите внимание, что схема сериализации данных не такая, как в функции unserialize(), и получить доступ к данным можно с помощью функции session_decode().

Список параметров

id

Идентификатор сессии.

Возвращаемые значения

Возвращает закодированную строку прочитанных данных. Если ничего не прочитано, возвращается false. Обратите внимание, что это значение передаётся для обработки внутри PHP.

Смотрите также

Добавить

Примечания пользователей 1 note

up
1
Anonymous
1 year ago
It appears that, if this function returns false, it causes "session_start(): Failed to read session data: user" to be emitted in the error log. This also seems to have a cascading effect that causes the write() method not to be called.

So, returning false appears to only be for indicating an error state. To indicate that there is no existing session, but that it is okay to create one, it appears that returning an empty string is the way to go.
To Top