Đây là câu hỏi hợp lý. Tôi cũng bị nhầm lẫn bởi tài liệu.
Những gì tôi đã có thể giải nén sau khi đọc nó một chục lần là chức năng chỉ là một phiên bản shortcut của mã
register_shutdown_function('session_write_close');
Nếu bạn gọi die() hoặc thoát trong một kịch bản php sự phiên sẽ không được đóng đúng cách (đặc biệt nếu bạn có trình xử lý phiên tùy chỉnh). Hàm này không là gì ngoài một phím tắt.
đang bootstrap của tôi cho phiên xử lý cụ thể của tôi trông giống như:
// 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();
Chức năng session_register_shutdown
đảm bảo chức năng của tôi SQLSrvSessionHandler::sessionClose
và SQLSrvSessionHandler::sessionWrite
được gọi là thậm chí nếu tôi chạy một chết hoặc thoát báo cáo.
Tôi cũng tìm thấy this answer hữu ích.
Bạn đã đọc phần còn lại của trang chưa? "Đăng ký session_write_close() như một chức năng tắt máy." Nhận xét của người dùng đưa ra một tương đương cho các phiên bản PHP cũ cũng làm cho nó khá rõ ràng. – IMSoP
Tôi đang bỏ phiếu để đóng câu hỏi này là không có chủ đề vì câu hỏi này có thể được trả lời bằng cách đọc tài liệu tại http://php.net/session_register_shutdown – Sven
Tất nhiên tôi đã đọc, nhưng tôi vẫn không hiểu. "Đăng ký session_write_close() như một chức năng tắt máy." Khi nào và tại sao chúng ta có thể sử dụng chức năng này? –