完整示例:
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行
答案 0 :(得分:1)
您必须确保在session_start()之前加载类定义,否则将创建默认类(没有方法)。
自动加载类不起作用。也不会在session_start之后加载类定义。