【发布时间】:2019-01-06 01:04:27
【问题描述】:
无法访问数组,但var_dump() 可以看到。
session_start();
include './entities/Answer.php';
include './entities/Question.php';
include './Database.php';
if (isset($_SESSION["question"])) {
$correct = TRUE;
var_dump($_SESSION["question"]);
var_dump($_SESSION["question"]->answers);
}
} else {
echo "<h2>no question selected.</h2>";
}
var_dump($_SESSION["question"]);
显示:
object(__PHP_Incomplete_Class)#2 (8) {
["__PHP_Incomplete_Class_Name"]=> string(8) "Question"
["id"]=> string(1) "1"
["correct"]=> NULL
["wrong"]=> NULL
["answers"]=> array(3) {
[0]=> object(__PHP_Incomplete_Class)#3 (5) {
["__PHP_Incomplete_Class_Name"]=> string(6) "Answer"
["correct"]=> string(1) "0"
["question_id":"Answer":private]=> NULL
["id"]=> string(1) "1"
["text"]=> string(9) "antwort 1"
}
[1]=> object(__PHP_Incomplete_Class)#4 (5) {
["__PHP_Incomplete_Class_Name"]=> string(6) "Answer"
["correct"]=> string(1) "0"
["question_id":"Answer":private]=> NULL
["id"]=> string(1) "2"
["text"]=> string(5) "ant 2"
}
[2]=> object(__PHP_Incomplete_Class)#5 (5) {
["__PHP_Incomplete_Class_Name"]=> string(6) "Answer"
["correct"]=> string(1) "0"
["question_id":"Answer":private]=> NULL
["id"]=> string(1) "3"
["text"]=> string(5) "ant 3"
}
}
["creator_id"]=> NULL
["categories"]=> array(0) { }
["text"]=> string(17) "eine Test frage ?"
}
但var_dump($_SESSION["question"]->answers); 显示NULL。
我真的不明白。
我收到此错误消息:
PHP 注意:main():脚本试图执行方法或访问不完整对象的属性。请确保您尝试操作的对象的类定义“问题”已加载在 unserialize() 被调用或提供 __autoload() 函数来加载类定义
感谢您的帮助。
【问题讨论】:
-
你可能没有包含你的类定义。
-
包括'./entities/Answer.php';答案是数组的类型
-
暂时将
include换成require,以确保他们正在提取所需的代码。并检查错误。 -
我试了一下,但没有任何改变,我添加了一条错误消息。
-
尝试将 session_start 放在你的类定义之后。