#1 starlight36
通过本类可以实现简洁快速的用户SESSION访问。使用方法:
此扩展为标准形式的扩展,直接放在Extensions下即可。Session的读写方法支持path形式访问。例如,session中存储了以下PHP数组:
array('key1'=>array('key2'=>'value'))
那么spClass('spSession')->get('key1/key2')即可读取到值value。写入时采用put方法,访问方式类似。
源代码:
/**
* Session扩展类
*
* @author starlight36
*/
class spSession {
private $session;
function __construct() {
$this->session = &$_SESSION[$GLOBALS['G_SP']['sp_app_id']]['session'];
}
/**
* 支持以path形式访问Session值
* @param string $key
* @return mixed
*/
function get($key = NULL) {
return $this->path_array($this->session, $key);
}
/**
* 将数据存入SESSION, 支持path形式访问
* @param string $key
* @param mixed $value
* @return bool
*/
function put($key, $value) {
$array =& $this->path_array($this->session, $key);
$array = $value;
return TRUE;
}
/**
* Path形式访问数组
* @param minxed &$array
* @param string $path
* @return mixed
*/
private function &path_array(&$array, $path = NULL) {
if(empty($path) || !is_array($array)) {
return $array;
}else{
$arr_path = explode('/', $path);
$path = NULL;
foreach($arr_path as $v){
$path .= '[\''.addslashes($v).'\']';
}
eval('$value =& $array'.$path.';');
return $value;
}
}
}
/* End of this file */
下载:
spSession.rar
2011-02-11 18:12:58