zoukankan      html  css  js  c++  java
  • session与__destruct的一段bug

    继以前发现类析构函数__destruct不能处理exit和throw Exception后,最近又发现__destruct竟然不能写入session。
    腾讯开放平台的PHP Oauth2.0 SDK工具中,Recorder.class.php中的类是用以贮存和读取数据的,其中有一段:

    public function __construct(){
    … …

    if(empty($_SESSION['QC_userData'])){
    self::$data = array();
    } else {
    self::$data = $_SESSION['QC_userData'];
    }
    }

    public function __destruct(){
    $_SESSION['QC_userData'] = self::$data;
    # 上面这句使用echo session时没问题,但实际上并没有写入成功,不信可以另一一页查看能否读取’QC_userData’值
    }

    构造函数声明、处理数据,而析构函数最后将数据保存到session中,这程序写得清晰到位,但实际是不能运作的,大家依照5.2.17版本可以试一下!
    另外,在php手册上也有一段:
    class Example{

        function
    __destruct(){
           
    $_SESSION['test'] = true;
           
    session_write_close();
        }

    }
    报告不能正常写入。
  • 相关阅读:
    c语言分支和循环语句
    C语言基础知识
    磁盘管理-fdisk
    搭建Discuz
    KVM创建虚拟机相关操作
    WINRAR exe 捆绑 小游戏
    linux vi编辑器&文件目录管理
    灰鸽子木马的功能体验
    sqlalchemy 级联删除
    sqlalchemy 多对多
  • 原文地址:https://www.cnblogs.com/sumsung753/p/3821492.html
Copyright © 2011-2022 走看看