Session的声明与使用

Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start()。
注意:session_start()函数之前不能有任何输出,如果不确定php.ini里是否开启建议:

if (! isset($_SESSION)) {
    session_start();
}

推荐存session、取session、删除session方法如下:

/**
 * Session控制类
 */
class Session{

    /**
     * 设置session
     * @param String $name   session name
     * @param Mixed  $data   session data
     * @param Int    $expire 超时时间(秒)
     */
    public static function set($name, $data, $expire=180){
        $session_data = array();
        $session_data['data'] = $data;
        $session_data['expire'] = time()+$expire;
        $_SESSION[$name] = $session_data;
    }

    /**
     * 读取session
     * @param  String $name  session name
     * @return Mixed
     */
    public static function get($name){
        if(isset($_SESSION[$name])){
            if($_SESSION[$name]['expire']>time()){
                return $_SESSION[$name]['data'];
            }else{
                self::clear($name);
            }
        }
        return false;
    }

    /**
     * 清除session
     * @param  String  $name  session name
     */
    public static function clear($name){
        unset($_SESSION[$name]);
    }

}

你可能感兴趣的:(PHP)