<?phperror_reporting(E_ERROR);class SessionDeal{ ???private $database; ???/* ????session初始化函数 ????@param database 数据库对象 ????@return bool 操作成功返回true,失败返回false ????*/ ???function open($database){ ???????$this->database = $database; ???????echo "open".PHP_EOL; ???????return true; ???} ???/* ????写入session ????@param id sessionID ????@param val session值 ????@param expire 超时时间 单位:秒 ????*/ ???function write($id,$val,$expire){ ???????echo "write".PHP_EOL; ???????return true; ???} ???/* ????获取session值 ????@param id sessionID ????@return val session值 ????*/ ???function read($id){ ???????echo "read".PHP_EOL; ???????return $val; ???} ???/* ????销毁session(删除数据库中的session) ????@param id sessionID ????*/ ???function destroy($id){ ???????echo "destroy".PHP_EOL; ???????return true; ???} ???/* ????session关闭函数(相当于析构函数,可以做数据库关闭操作) ????*/ ???function close(){ ???????echo "close".PHP_EOL; ???????return true; ???} ???/* ????垃圾回收(不定期销毁过期session) ????*/ ???function gc(){ ???????echo "gc"; ???}}$handler = new SessionDeal();session_set_save_handler( ???????array($handler, ‘open‘), ???????array($handler, ‘close‘), ???????array($handler, ‘read‘), ???????array($handler, ‘write‘), ???????array($handler, ‘destroy‘), ???????array($handler, ‘gc‘) ???);// 下面这行代码可以防止使用对象作为会话保存管理器时可能引发的非预期行为register_shutdown_function(‘session_write_close‘);session_start();$_SESSION[‘name‘] ?= ?‘value‘;$ret = $_SESSION[‘name‘];echo $ret.PHP_EOL;// 现在可以使用 $_SESSION 保存以及获取数据了
php session类
原文地址:http://blog.51cto.com/12173069/2177924