位置: 编程技术 - 正文
推荐整理分享ThinkPHP中session函数详解(thinkphp session存放位置),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:thinkphp6 session读取不到,thinkphp session存放位置,thinkphp5 session,thinkphp session redis,thinkphp constants,thinkphp5 session,thinkphp constants,thinkphp6 session读取不到,内容如对您有帮助,希望把文章链接给更多的朋友!
在PHP中使用$_SESSION来操作session,而ThinkPHP提供了session的封装函数session()。单单这一个函数就实现了session的增删改查的功能。下面我们分别来看其应用与实现。
该session()函数的定义是在Common/functions.php中定义。
session配置
session($name='',$value='')函数有两个参数,$name为数组的时候是对session进行设置。使用如下:
这些是在开启session之前进行设置的。在ThinkPHP中定义该函数的时候是先判断$name是否为数组,如果为数组的话就说明是在对session进行设置,然后进入相应的代码执行设置。
其实现代码如下:
在ThinkPHP中,对于session的存储系统提供了mysql和memache两种数据库。当然默认情况下是使用文件存储。判断session存储方式的代码如下:
对于session存储系统的配置是通过配置选项SESSION_TYPE来设置的。
SESSION_TYPE=>'Mysql' //将session存储在mysql数据库中
设置完成以后如果设置了session自动启动,那系统会自动开启session
如果想关闭session自启动,对选项SESSION_AUTO_START设置如下:
SESSION_AUTO_START => false
如果关闭了系统自启动,可以在项目的公共文件或者在控制器中通过手动调用session_start()来开启session。或者使用函数session(),其开启方法如下:
session(‘[start]');
在ThinkPHP中其实现代码如下:
session赋值
session赋值比较简单,直接使用:
session('name','onmpw');
除此之外对于键值还可以是多层的中间使用‘.'连接。
session(‘name1.name2','onmpw'); //等价于 $_SESSION[‘name1'][‘name2'] = ‘onmpw';
在ThinkPHP中对于session赋值的实现代码如下:
$prefix是通过选项SESSION_PREFIX来配置的。
session取值
session取值相对来说也是比较简单的。
首先是获取全部的session,使用方法如下
$values = session();
此时得到的是一个数组。在ThinkPHP中实现代码如下:
再就是取出单个值
其实现代码如下:
session删除
session的删除分为清空session,销毁session和删除单个session值。
先说清空session。清空session传参给$name的值为null
session(null); //清空session
其实现代码如下:
清空session只是将session对应的文件或者表中的数据清除,但是文件还是会存在的。
销毁session
session(‘[destroy]');
其ThinkPHP中的实现代码如下:
销毁session和清空session不同的是销毁session会将文件一并销毁。
最后就是删除单个session值。使用方式如下
session(‘name',null);
删除单个session值,将第二个参数$value的值设为null即可删除。
检查session
最后简单介绍对session的检查。检查是指一个变量是否存在。原生的PHP检查session变量是这样检查的
isset($_SESSION[‘name']);
ThinkPHP封装之后使用session()函数是这样检查
session(‘name'); //判断一个session是否已经设置
其代码实现也是利用了原生的检查的方式
以上几乎是对session()函数各个功能的使用介绍,以及ThinkPHP是如何实现的。希望本文的内容对大家在使用ThinkPHP过程中起到一些帮助作用。
详解PHP中websocket的使用方法 关于PHP中websocket使用的详细注解,供大家参考。服务端:php//send用户加入//send1发送信息//send2退出登录error_reporting(E_ALL^E_NOTICE);ob_implicit_flush();//file_put_con
PHP实现链式操作的原理详解 在一个类中有多个方法,当你实例化这个类,并调用方法时只能一个一个调用,类似:db.phpphpclassdb{publicfunctionwhere(){//codehere}publicfunctionorder(){//codehere}pub
深入理解PHP类的自动载入机制 php的自动加载:在php5以前,我们要用某个类或类的方法,那必须include或者require,之后才能使用,每次用一个类,都需要写一条include,麻烦php作者想简
友情链接: 武汉网站建设