PHP Version 5.2.0发布了,本是件高兴的事情,结果让我又花了一个小时升级原来的代码。因为session_set_save_handler() 这个函数在现在不支持Global的对象了,系统会认为这是个
non-existent object --|||
我原来自己封装了一个Session类,目的是用数据库保存Session信息,Session类中的数据库的操作又用到了数据库类。我在session的类的成员函数里面声明一个global变量,而这个global变量是在另外文件里面已经实例化了的一个数据库对象。原来低版本的PHP是容许这种做法的,今天那个服务器提供商把PHP升级了,就出现了一个致命错误。
后来我在每个成员函数里面都声明了一下这个对象,问题就解决了。不过又多了很多重复的代码 :(
我可能有点代码洁癖 ^^
相关信息可以看一下有关这个Bug的详细信息。
http://bugs.php.net/bug.php?id=31454
也就是说呢,PHP Version 5.2.0本来是治理一个Bug的,结果把我那个没有Bug的Session类也一并治理了。
下面是我的Session类,欢迎过来砸砖:
[sfile]attachment/2006-11-09/class_sessions.7z[/sfile]