Note: this function won't be called in case $session_data is unchanged. In order to call this function every time when session is about closing, add $_SESSION["timestamp"] = time();
PHP - Manual: SessionHandlerInterface::write
2024-11-13
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SessionHandlerInterface::write — Write session data
$id
, string $data
): boolWrites the session data to the session storage. Called by session_write_close(), when session_register_shutdown() fails, or during a normal shutdown. Note: SessionHandlerInterface::close() is called immediately after this function.
PHP will call this method when the session is ready to be saved and closed. It encodes the session data from the $_SESSION superglobal to a serialized string and passes this along with the session ID to this method for storage. The serialization method used is specified in the session.serialize_handler setting.
Note this method is normally called by PHP after the output buffers have been closed unless explicitly called by session_write_close()
id
The session id.
data
The encoded session data. This data is the result of the PHP internally encoding the $_SESSION superglobal to a serialized string and passing it as this parameter. Please note sessions use an alternative serialization method.
会话存储的返回值(通常成功返回 0,失败返回 1)。
Note: this function won't be called in case $session_data is unchanged. In order to call this function every time when session is about closing, add $_SESSION["timestamp"] = time();
It is important to note that if returning FALSE from this method, PHP will in turn output the following warning:
Warning: Unknown: Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0.
This could cause minor inconveniences, however if the session should not be written as per design, then returning TRUE after handling (and not writing) the session will avoid further issues.
All in all, better return TRUE at all times except in cases of hard errors.
Warning: session_write_close(): Session callback expects true/false return value in Unknown on line 0
I have returned TRUE in write() but the warning still persist. Then I also return TRUE in close() and the warning is gone.
官方地址:https://www.php.net/manual/en/sessionhandlerinterface.write.php