一、官方 session_status() 返回值为:

  • PHP_SESSION_DISABLED 会话是被禁用的。
  • PHP_SESSION_NONE 会话是启用的,但不存在当前会话。
  • PHP_SESSION_ACTIVE 会话是启用的,而且存在当前会话。

session_status()

二、尝试打印var_dump(session_status()); 值总为int 1

与官方描述不一样,google it,当打印时,会显示如此:

  1.  
    0 ----> PHP_SESSION_DISABLED if sessions are disabled.
  2.  
    1 ----> PHP_SESSION_NONE if sessions are enabled, but none exists.
  3.  
    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 函数详解使用方法的更多相关文章

  1. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  2. 【转】linux 中fork()函数详解

    在看多线程的时候看到了这个函数,于是学习了下,下面文章写的通俗易懂,于是就开心的看完了,最后还是很愉快的算出了他最后一个问题. linux 中fork()函数详解 一.fork入门知识 一个进程,包括 ...

  3. Linux中fork()函数详解(转载)

    linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...

  4. C++中重载函数详解

    函数的重载详解 什么时函数重载: 函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数.重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避 ...

  5. python unittest框架中addCleanup函数详解

    接上一篇doCleanups说明,这次介绍下另一个很好用的函数:addCleanup 还是老规矩,看官方文档说明: addCleanup(function, *args, **kwargs)¶ Add ...

  6. JavaScript基础内容中的函数详解

    函数 函数:即方法 函数就是一段预先设置的功能代码块,可以反复调用,根据输入参数的不同,返回不同的值. 为什么使用函数: 1.方便调用 2.代码重用,利于维护 3.便于修改,便于重构 4.简化逻辑,利 ...

  7. php中magic_quotes_gpc函数详解

    magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊 ...

  8. python中groupby函数详解(非常容易懂)

    一.groupby 能做什么? python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算! 对于数据的分组和分组运算主要是指groupby函数的应用,具体函数的规则如下: df[ ...

  9. Linux C 中 fork() 函数详解

    一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork() 函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同 ...

随机推荐

  1. loj#2020. 「AHOI / HNOI2017」礼物

    题意:给定xy数组求 \(\sum_{i=0}^{n-1}(x_i+y_{(i+k)\modn}+c)^2\) 题解:先化简可得 \(n*c^2+2*\sum_{i=0}^{n-1}x_i-y_i+\ ...

  2. String.Format 格式化例子

    //格式为sring输出//   Label1.Text = string.Format("asdfadsf{0}adsfasdf",a);替换符//   Label2.Text  ...

  3. Maven管理jar包依赖常出现的不能实例化类的问题

    you'ji 在maven管理jar包依赖时,存在一种常见的问题. pom.xml文件配置没问题,通过eclipse里中的maven dependencies查看,也确实有这个jar 包,或者这个类. ...

  4. python中RabbitMQ的使用(工作队列)

    消息可以理解为任务,消息发送者可以看成任务派送者(sender),消息接收者可以看成工作者(worker). 当工作者接收到一个任务,还没完任务时分配者又发一个任务,此时需要多个工作者来共同处理这些任 ...

  5. org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'list' in 'c

     org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'list' in ' ...

  6. Liunx下安装jdk7

    一. 查询系统中是否有安装过jdk: #  rpm -qa | grep java 查询到有安装,使用命令卸载: #  rpm -e --nodeps java-1.6.0-openjdk-1.6.0 ...

  7. html 巧用data-for藏自定义属性

    <div class="form-ele"> <label for="week" class="label col-1"& ...

  8. windows7安装教程(vmware)

    这步是正确安装windows的关键,如果不设置那么安装时将不能识别出磁盘,造成安装不成功. 选择No进行自定义修饰,主要是保证C盘大小合适,其他盘可在安装完成之后再调整. 后续安装步骤全自动,完全不用 ...

  9. Java 9中新的货币API

    译文出处: Java译站   原文出处:Michael Scharhag JSR 354定义了一套新的Java货币API,计划会在Java 9中正式引入.本文中我们将来看一下它的参考实现:JavaMo ...

  10. sigmoid belief network boltszmann machine

    because of explaining away, the hidden weights in sigmoid belief network is no longer independent