Session方法用于Session 设置、获取、删除和管理操作。

Session 用于Session 设置、获取、删除和管理操作
用法 session($name, $value='')
参数 name(必须):如果传入数组 则表示进行session初始化,如果传入null表示清空当前session,如果是字符串则表示session赋值、获取或者操作。
Value(可选):要设置的session值,如果传入null表示删除session,默认为空字符串
返回值 见详(根据具体的用法返回不同的值)

session函数是一个多元化操作函数,传入不同的参数调用可以完成不同的功能操作,包括下面一些功能。[-more-]

session初始化设置

如果session方法的name参数传入数组则表示进行session初始化设置,例如:

  1. session(array('name'=>'session_id','expire'=>3600));
复制代码

支持传入的session参数包括:

参数名 说明
id session_id值
name session_name 值
path session_save_path 值
prefix session 本地化空间前缀
expire session.gc_maxlifetime 设置值
domain session.cookie_domain 设置值
use_cookies session.use_cookies 设置值
use_trans_sid session.use_trans_sid 设置值
cache_limiter session_cache_limiter设置值
cache_expire session_cache_expire设置值
type session hander类型,可以使用hander驱动扩展

Session初始化设置方法 无需手动调用,在App类的初始化工作结束后会自动调用,通常项目只需要配置SESSION_OPTIONS参数即可,SESSION_OPTIONS参数的设置是一个数组,支持的索引名和前面的session初始化参数相同。
默认情况下,初始化之后系统会自动启动session,如果不希望系统自动启动session的话,可以设置SESSION_AUTO_START为false,例如:

  1. 'SESSION_AUTO_START' =>false
复制代码

关闭自动启动后可以项目的公共文件或者在控制器中通过手动调用session_start或者session('[start]') 启动session。

session赋值

Session赋值比较简单,直接使用:

  1. session('name','value');  //设置session
复制代码

相当于:

  1. $_SESSION['name'] = 'value';
复制代码

session取值

Session取值使用:

  1. $value = session('name');
复制代码

相当于使用:

  1. $value = $_SESSION['name'];
复制代码

session删除

  1. session('name',null); // 删除name
复制代码

相当于:

  1. unset($_SESSION['name']);
复制代码

要删除所有的session,可以使用:

  1. session(null); // 清空当前的session
复制代码

相当于:

  1. $_SESSION = array();
复制代码

session判断

要判断一个session值是否已经设置,可以使用

  1. session('?name');
复制代码

用于判断名称为name的session值是否已经设置
相当于:

  1. isset($_SESSION['name']);
复制代码

session管理

session方法支持一些简单的session管理操作,用法如下:

  1. session('[操作名]');
复制代码

支持的操作名包括:

操作名 含义
start 启动session
pause 暂停session写入
destroy 销毁session
regenerate 重新生成session id

使用示例如下:

  1. session('[pause]'); // 暂停session写入
  2. session('[start]'); // 启动session
  3. session('[destroy]'); // 销毁session
  4. session('[regenerate]'); // 重新生成session id
复制代码

本地化支持

如果在初始化session设置的时候传入prefix参数或者单独设置了SESSION_PREFIX参数的话,就可以启用本地化session管理支持。启动本地化session后,所有的赋值、取值、删除以及判断操作都会自动支持本地化session。
本地化session支持开启后,生成的session数据格式由原来的

  1. $_SESSION['name'] 变成 $_SESSION['前缀']['name']
复制代码

假设前缀设置为think,则赋值操作:

  1. session('name','value');  //设置session
复制代码

相当于:

  1. $_SESSION['think']['name'] = 'value';
复制代码

取值操作:

  1. $value = session('name');
复制代码

相当于使用:

  1. $value = $_SESSION['think']['name'];
复制代码

删除操作:

  1. session('name',null);
复制代码

相当于:

  1. unset($_SESSION['think']['name']);
复制代码

清空操作:

  1. session(null);
复制代码

相当于:

  1. unset($_SESSION['think']);
复制代码

判断操作:

  1. session('?name');
复制代码

相当于:

  1. isset($_SESSION['think']['name']);
复制代码

thinkphp的session用法的更多相关文章

  1. ThinkPHP中Session用法详解

    在ThinkPHP封装了Session类,用户可以直接使用,常用的方法有: Session::set(name, value):注册 session . Session::is_set(name):检 ...

  2. thinkPHP中session()方法用法详解

    本文实例讲述了thinkPHP中session()方法用法.分享给大家供大家参考,具体如下: 系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成. 用法 ? ...

  3. thinkphp中session跨域问题

    问题描述 <thinkphp实现短信验证注册>中,小编不止记录了短信验证码的实现方法,同时还记录了图片验证码的实现方法. 本地使用,一切正常:后端项目和前端项目都部署到服务器,一切正常:后 ...

  4. 解决thinkphp设置session周期无效的问题

    thinkphp的session设置周期是无效的:直接的影响就是无法保留用户的登陆状态:用thinkphp开发的项目:关闭浏览器后用户就退出了:即便设置了session周期也没作用:这个bug存在很久 ...

  5. 关于云主机Thinkphp框架Session跨页失效的问题

    在网站部署到云主机之后,前台一直能够正常显示,后台确登录不上去,验证码也无法显示,研究半天,才确定是Session跨页传递失效的问题.找网上各种解决方法,都是关于Php.ini文件的设置,可又解决不了 ...

  6. php会话技术之Session用法

    php会话技术之Session用法举例. 本文原始链接:http://www.jbxue.com/article/8940.html1.创建session <?php     //创建sessi ...

  7. thinkphp设置session有效时间

    thinkphp的框架文件 ThinkPHP/Common/functions.php function session(){ 在这个方法中找到 thinkphp .1版 if(isset($name ...

  8. 【转】asp.net中利用session对象传递、共享数据[session用法]

    来自:http://blog.unvs.cn/archives/session-transfer-method.html 下面介绍Asp.net中利用session对象传递.共享数据用法: 1.传递值 ...

  9. asp.net中利用session对象传递、共享数据[session用法]

    下面介绍Asp.net中利用session对象传递.共享数据用法: 1.传递值: 首先定义将一个文本值或单独一个值赋予session,如下: session[“name”]=textbox1.text ...

随机推荐

  1. hibernate注解之@Onetomany、@Manytoone、@JoinColumn

    @Onetomany用于实体类与数据库表映射中少的一方,请看下面的例子. 假设一个用户只有一种角色,用户和角色是onetomany的关系 用户实体 @Entity @Table(name=" ...

  2. Windows 8 常见教程

    http://www.codeproject.com/Articles/439874/Web-service-on-Windows-Phone http://www.c-sharpcorner.com ...

  3. Java字符字符串类

    Java字符字符串类 Character 类 Character 类用于对单个字符进行操作.Character 类在对象中包装一个基本类型 char 的值在实际开发过程中,我们经常会遇到需要使用对象, ...

  4. EasyUI, Dialog 在框架页(ifrmae)的Top页面弹出时,拖拽Dialog边缘(以改变窗口大小),UI界面被卡死的解决办法

    将Dialog的modal属性设置为true,可以解决卡死的问题(但会给用户使用体验带来影响) var par = { title: This.title, width: This.width, he ...

  5. Linux下源码安装Peach-2.3.8教程

    在peach文件夹下运行 python peach.py ./samples/HelloWorld.xml 提示先安装4Suite-XML. 根据提示在dependences文件夹下安装,出现两次错误 ...

  6. 小白两篇博客熟练操作MySQL 之 第一篇

    小白两篇博客熟悉操作MySQL  之   第一篇 一.概述 1. 什么是数据库? 答: 储存数据的仓库, 如: 在ATM的事例中创建的一个db 目录, 称为数据库 2. 什么是Mysql, Oracl ...

  7. php表单常用正则表达式

    <?php /** * @description: 正则表达式匹配 */ class Regex { /** * @手机号 */ public static function Phone($su ...

  8. Javascript:使用jQuery提交Form表单

    DEMO说明一切: // this is the id of the form $("#idForm").submit(function() { var url = "p ...

  9. HTML5:防止页面在移动设备上缩放

    在制作网页时,如果对移动设备有做兼容设计的话,通常是不希望页面在移动设备能够被缩放.这样可以防止原先设计好的样式被破坏.要做到这一点,只需要在网页的head部分加入如下语句即可: <!-- 屏蔽 ...

  10. PHP array_intersect_uassoc()

    定义和用法 array_intersect_uassoc() 函数使用用户自定义的回调函数计算数组的交集,用回调函数比较索引. array_intersect_uassoc() 返回一个数组,该数组包 ...