我有点困惑。
到目前为止我在PHP中使用__autoload,我也在使用会话。这两件事情很好,当我在会话中存储一些对象时,__ autoload函数已经加载了相应的类而没有问题。
不,我正在“更新”我的主脚本,并希望将__autoload函数更改为spl_autoload_register函数,因为php手册说,__ autoload将来可能会被弃用。
但现在,我有一些问题。 spl_autoload_register适用于我在脚本中以“正常”方式使用的所有类,但是当我在会话中存储对象时,spl_autoload_register无法加载这些类。
当我用json_encode($ _ SESSION)查看会话时,有类似的内容:
{"user":{"__PHP_Incomplete_Class_Name":"User","id":"1000","username":"foobar","email":"foo@bar.com"}}
__autoload没问题......
{"user":{"id":"1000","username":"foobar","email":"foo@bar.com"}}
我的职能:
__autoload($class) { include 'classes/' . $class . '.php'; }
我尝试将其替换为:
spl_autoload_register(function($class) { include 'classes/' . $class . '.php'; }
我使用的是PHP版本5.3.3-7
有人可以重现此错误吗?这可能是目前为止PHPs spl_autoload_register中的一个错误吗? __autoload到目前为止使用的是“更好”的功能,而spl_autoload_register到目前为止还无法使用会话吗?