php – 为什么会话对象销毁失败

当我使用session_destroy()时,我得到“会话对象销毁失败”.

session_start();
if(isset($_SESSION['user_id'])){    
    $_SESSION=array();
    if(isset($_COOKIE[session_name()])){
        setcookie(session_name(),'',"/");
    }
    session_destroy();
}

是什么导致这个错误

解决方法

错误

Warning: session_destroy(): Session object destruction Failed

这是相当微不足道的,没有会话已经启动对象已被评估,所以你不能破坏它.

@运算符并不总是有效,例如具有错误报告功能.

编辑:

1) What causes this error?

PHP尝试删除会话文件时,通常会导致此错误,但无法找到它.

在你使用session_destroy的情况下,只有one place in PHP导致这种情况.那时session.save_handler(参见session_set_save_handler)对于销毁动作返回FALSE.这可能取决于您使用哪种类型的保存处理程序,认的是文件.使用那个,当session.save_path设置错误时(例如,不是可访问的目录),这将导致这样的错误.

2) Why would the “@” not be suppressing the error?

这取决于输出的创建方式和PHP配置. @并不总是有效.例如,使用set_error_handler注册的回调仍将收到这些消息.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...