php session類
阿新 • • 發佈:2018-09-21
數據庫對象 handle ram 垃圾回收 fun ray () art exp
<?php
error_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類