session 的封装
/**
* 读取或写入session信息
* @param string $name 支持点分多级获取
* @param mixed $value 设置值
* @return string|NULL|unknown
*/
function session($name, $value = null) {
if (! isset($_SESSION)) {
session_start(); // 自动启动会话
}
if (! is_null($value)) {
if (isset($_SESSION[$name])) {
if ($_SESSION[$name] != $value) {
$_SESSION[$name] = $value;
}
} else {
$_SESSION[$name] = $value;
}
return $value;
} else {
if (strpos($name, '.')) {
if (isset($_SESSION[$name])) {
return $_SESSION[$name];
}
$names = explode('.', $name);
if (! isset($_SESSION[$names[0]])) {
return null;
}
$var = $_SESSION[$names[0]];
$len = count($names);
for ($i = 1; $i < $len; $i ++) {
if (is_array($var)) {
if (isset($var[$names[$i]])) {
$var = $var[$names[$i]];
} else {
return null;
}
} elseif (is_object($var)) {
if (isset($var->{$names[$i]})) {
$var = $var->{$names[$i]};
} else {
return null;
}
} else {
break;
}
}
return $var;
} else {
if (isset($_SESSION[$name])) {
return $_SESSION[$name];
} else {
return null;
}
}
}
}
// 检查会话参数是否存在
function issetSession($name) {
if (! isset($_SESSION)) {
session_start(); // 自动启动会话
}
return isset($_SESSION[$name]);
}