Это справедливый вопрос. Я также был смущен документацией.
То, что я был в состоянии извлечь после прочтения десятка раз в том, что функция просто сокращенная версия кода
register_shutdown_function('session_write_close');
Если вы звоните умереть() или выход в PHP скрипте сеанс не будет закрыт должным образом (особенно если у вас есть собственный обработчик сеанса). Эта функция является не чем иным, как ярлыком.
Моей самозагрузка коды для моего конкретного обработчика сеанса выглядит следующим образом:
// Set the session handlers to the custom functions.
$handler = new SQLSrvSessionHandler();
session_set_save_handler(
array($handler, 'sessionOpen'),
array($handler, 'sessionClose'),
array($handler, 'sessionRead'),
array($handler, 'sessionWrite'),
array($handler, 'sessionDestroy'),
array($handler, 'sessionGC')
);
session_register_shutdown();
Функция session_register_shutdown
страхует мою функцию SQLSrvSessionHandler::sessionClose
и SQLSrvSessionHandler::sessionWrite
называется даже если я бег фильера или выход заявления.
Я также нашел this answer полезным.
Вы прочли оставшуюся часть страницы? «Регистрирует session_write_close() как функцию выключения». Пользовательский комментарий, дающий эквивалент для старых версий PHP, также дает довольно четкое представление о том, что он делает. – IMSoP
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что на этот вопрос можно ответить, прочитав документацию по адресу http://php.net/session_register_shutdown. – Sven
Конечно, я читал, но я до сих пор не понимаю. «Регистрирует session_write_close() как функцию выключения». Когда и почему мы можем использовать эту функцию? –