写session的时候对象已经销毁.解决方法是
session_set_save_handler的时候加一句代码register_shutdown_function('session_write_close');

解决方案 »

  1.   

    测试结果:
    100 sess_open globaltest
    101 sess_read globaltest
    102 sess_write globaltest
    103 sess_close globaltest
      

  2.   

    http://blog.csdn.net/system128我写了两种实现方式.可以参考下.
      

  3.   

    SysTem128:你的查询数据库的类用的$this是从哪来的?
    你用的继承吧?
    我现在要用到外部定义好的类呢?
      

  4.   

    你注意看
    $sessionHandler = new SessionHandler();
    session_set_save_handler(
    array(&$sessionHandler,'on_session_start'),
    array(&$sessionHandler,'on_session_end'),
    array(&$sessionHandler,'on_session_read'),
    array(&$sessionHandler,'on_session_write'),
    array(&$sessionHandler,'on_session_destroy'),
    array(&$sessionHandler,'on_session_gc')
    );这里全是对对象方法的引用.而这个方法的$this就是$sessionHandler对象.
      

  5.   

    把要在read、write中用到的对象再建立一个对它的引用,这样原来的对象就不会被析构。示例代码如下:$obj1 = new myclass();
    $obj2 = &$obj1;
    ...
    function session_write(...)
    {
       global $obj2;
       ...
    }...