加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

ThinkPHP中session函数详解

发布时间:2020-12-14 14:06:01 所属栏目:大数据 来源:网络整理
导读:在PHP中使用$_SESSION来操作session,而ThinkPHP提供了session的封装函数session()。单单这一个函数就实现了session的增删改查的功能。下面我们分别来看其应用与实现。 该session()函数的定义是在Common/functions.php中定义。 session配置 session($name=''

在PHP中使用$_SESSION来操作session,而ThinkPHP提供了session的封装函数session()。单单这一个函数就实现了session的增删改查的功能。下面我们分别来看其应用与实现。

该session()函数的定义是在Common/functions.php中定义。

session配置

session($name='',$value='')函数有两个参数,$name为数组的时候是对session进行设置。使用如下:

'name',‘path'=>'/tmp/',‘expire'=>0 ); session($name);

这些是在开启session之前进行设置的。在ThinkPHP中定义该函数的时候是先判断$name是否为数组,如果为数组的话就说明是在对session进行设置,然后进入相应的代码执行设置。

其实现代码如下:

在ThinkPHP中,对于session的存储系统提供了mysql和memache两种数据库。当然默认情况下是使用文件存储。判断session存储方式的代码如下:

对于session存储系统的配置是通过配置选项SESSION_TYPE来设置的。

'Mysql' //将session存储在mysql数据库中

设置完成以后如果设置了session自动启动,那系统会自动开启session

如果想关闭session自启动,对选项SESSION_AUTO_START设置如下:

false

如果关闭了系统自启动,可以在项目的公共文件或者在控制器中通过手动调用session_start()来开启session。或者使用函数session(),其开启方法如下:

在ThinkPHP中其实现代码如下:

session赋值

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

除此之外对于键值还可以是多层的中间使用‘.'连接。

在ThinkPHP中对于session赋值的实现代码如下:

$prefix是通过选项SESSION_PREFIX来配置的。

session取值

session取值相对来说也是比较简单的。

首先是获取全部的session,使用方法如下

此时得到的是一个数组。在ThinkPHP中实现代码如下:

再就是取出单个值

其实现代码如下:

session删除

session的删除分为清空session,销毁session和删除单个session值。

先说清空session。清空session传参给$name的值为null

其实现代码如下:

清空session只是将session对应的文件或者表中的数据清除,但是文件还是会存在的。

销毁session

session(‘[destroy]');

其ThinkPHP中的实现代码如下:

销毁session和清空session不同的是销毁session会将文件一并销毁。

最后就是删除单个session值。使用方式如下

删除单个session值,将第二个参数$value的值设为null即可删除。

检查session

最后简单介绍对session的检查。检查是指一个变量是否存在。原生的PHP检查session变量是这样检查的

ThinkPHP封装之后使用session()函数是这样检查

其代码实现也是利用了原生的检查的方式

以上几乎是对session()函数各个功能的使用介绍,以及ThinkPHP是如何实现的。希望本文的内容对大家在使用ThinkPHP过程中起到一些帮助作用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读