PHP中session_start 函数详解使用方法
一、官方 session_status() 返回值为:
PHP_SESSION_DISABLED会话是被禁用的。PHP_SESSION_NONE会话是启用的,但不存在当前会话。PHP_SESSION_ACTIVE会话是启用的,而且存在当前会话。
二、尝试打印var_dump(session_status()); 值总为int 1
与官方描述不一样,google it,当打印时,会显示如此:
0 ----> PHP_SESSION_DISABLED if sessions are disabled.1 ----> PHP_SESSION_NONE if sessions are enabled, but none exists.2 ----> PHP_SESSION_ACTIVE if sessions are enabled, and one exists.
三、思考何时返回 0 或 2 。
1、尝试加上session_start(),打印出了2。
session_start();
var_dump(session_status()); // int 2
说明:PHP_SESSION_ACTIVE 是指使用了session_start() 启动新会话或者重用现有会话.
2、尝试在session_start() 后使用 session_destroy(),期望得到0。
session_start();
session_destroy();
var_dump(session_status()); // int 1
说明:结果输入1,证明,现在session状态为 “PHP_SESSION_NONE 会话是启用的,但不存在当前会话”。
3、于是思考,当session不能用时状态才为 “PHP_SESSION_DISABLED 会话是被禁用的”,即返回0。
于是修改php.ini session.save_handler = 'cached',重启php,此时,有个warning,同时,返回0;
说明:只有当session 无法使用时,session_status 才返回 0.
————————————————————————————————————————————————————————
总结,要判断是否需要使session_start()函数,可以这样:
if(session_status !== PHP_SESSION_ACTIVE){
session_start();
}
或
if(session_status !== 2){
session_start();
}
PHP中session_start 函数详解使用方法的更多相关文章
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- 【转】linux 中fork()函数详解
在看多线程的时候看到了这个函数,于是学习了下,下面文章写的通俗易懂,于是就开心的看完了,最后还是很愉快的算出了他最后一个问题. linux 中fork()函数详解 一.fork入门知识 一个进程,包括 ...
- Linux中fork()函数详解(转载)
linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...
- C++中重载函数详解
函数的重载详解 什么时函数重载: 函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数.重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避 ...
- python unittest框架中addCleanup函数详解
接上一篇doCleanups说明,这次介绍下另一个很好用的函数:addCleanup 还是老规矩,看官方文档说明: addCleanup(function, *args, **kwargs)¶ Add ...
- JavaScript基础内容中的函数详解
函数 函数:即方法 函数就是一段预先设置的功能代码块,可以反复调用,根据输入参数的不同,返回不同的值. 为什么使用函数: 1.方便调用 2.代码重用,利于维护 3.便于修改,便于重构 4.简化逻辑,利 ...
- php中magic_quotes_gpc函数详解
magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊 ...
- python中groupby函数详解(非常容易懂)
一.groupby 能做什么? python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算! 对于数据的分组和分组运算主要是指groupby函数的应用,具体函数的规则如下: df[ ...
- Linux C 中 fork() 函数详解
一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork() 函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同 ...
随机推荐
- List<String> 和 ArrayList<String>的区别(转载)
最近对这两个问题比较懵逼,关于List和ArrayList.List<String> list = new ArrayList<String>(); 好了,先搞明白List 和 ...
- Hadoop介绍-1.基本原理
了解大数据 首先,搞清楚hadoop在处理大数据的定位在哪里 什么是大数据?为什么要处理大数据? 数据量大(Volume) 数据类别复杂(Variety) 数据处理速度快(Velocity) 数据真实 ...
- Eclipse集成Maven进行开发
Eclipse上Maven环境配置使用 (全) Eclipse EE+MAVEN配置以及POM.XML的使用 Eclipse报错:Referenced classpath provider does ...
- Python面向对象高级编程-__slots__、定制类,枚举
当在类体内定义好各种属性后,外部是可以随便添加属性的,Python中类如何限制实例的属性? Python自带了很多定制类,诸如__slots__,__str__ __slots__ __slots__ ...
- Hive QL的实例
1.创建电影评分表 create table film_table ( userid int, movieid int, rating int, unixtime string ) row forma ...
- Hadoop--Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [localhost]
Unable to load native-hadoop library for your platform... using builtin-java classes where applicabl ...
- Qt_自定义菜单
一.右键菜单 右键菜单实现:通过重写contextMenuEvent(QContextMenuEvent *event)事件,QMenu+QAction即可完美实现! 重写voidcontextMen ...
- redis集群搭建教程(以3.2.2为例)
redis从3.0版本开始支持集群,2.X版本主支持sentinel主从模式:所以要搭建集群务必下载3.0以上版本,本教程以3.2.2版本为例. redis集群最少要有3个主节点,最典型的是3主3从组 ...
- QPainter绘制特殊线条
参考资料: https://www.cnblogs.com/Jace-Lee/p/5946342.html 效果图: 代码: void WgtText::paintEvent(QPaintEvent ...
- java中一对多 关联建表
我们以银行卡为例:一个人可以对应多张银行卡.多个银行卡对应着一个人. /** 银行卡持有者 **/ class CardsOwner { private String name; //名字 pr ...