PHP - 会话无法存储类?

时间:2016-12-05 23:16:22

标签: php session

完整示例: A)预计会发生什么。 我们希望将数据保存在$_SESSION["user_data"]变量中。这意味着,如果我执行print $_SESSION["user_data"]->getUUID();,则必须打印用户UUID,因为它在此处定义:$_SESSION["user_data"] = UserRep::selectUser(Conn::getConnection(), $token);

B)实际发生的事情。 它实际上返回下一个错误:

  

致命错误:main():脚本尝试执行方法或访问不完整对象的属性。请确保课程定义" UserMan"您尝试操作的对象是在 unserialize()被调用之前加载或提供__autoload()函数来加载C:\ xampp \ htdocs \ esotic1jdv \ index.php中的类定义第67行

注意:第67行是<?php echo $_SESSION["user_data"]->getUUID(); ?>

但以下代码确实有效: $data = UserRep::selectUser(Conn::getConnection(), $token); 然后 print $data->getUUID();

C)我想要发生的一个例子。

<?php
 print $_SESSION["user_data"]->getUUID();

必须给出结果:

  

569047265eca48a8aa34847a3a059a7ea8170dc3

D)实际发生的事情。     getUUID(); 结果如下:

  

致命错误:main():脚本尝试执行方法或访问不完整对象的属性。请确保课程定义&#34; UserMan&#34;您尝试操作的对象是在 unserialize()被调用之前加载或提供__autoload()函数来加载C:\ xampp \ htdocs \ esotic1jdv \ index.php中的类定义第67行

1 个答案:

答案 0 :(得分:1)

您必须确保在session_start()之前加载类定义,否则将创建默认类(没有方法)。

自动加载类不起作用。也不会在session_start之后加载类定义。