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();
        }

    }
    报告不能正常写入。
  • 相关阅读:
    ConcurrentHashMap源码阅读
    java中Scanner类nextLine()和next()的区别和使用方法
    setuid
    lsattr
    设置umask
    touch
    od
    vi 搜索
    nl
    cat 参数
  • 原文地址:https://www.cnblogs.com/sumsung753/p/3821492.html
Copyright © 2011-2022 走看看