如果这是一个非常简单的问题,我深表歉意。
我能够将 fetch_assoc() 结果放入 session 变量中,然后使用以下命令进行检查:
while ($row = $result -> fetch_assoc()){
$_SESSION['question'][] = ($row);
}var_dump($_SESSION);
最初我有 $_SESSION['question'] = $row
而不是 $_SESSION['question'][] = $row
并且它不起作用因为它只给出了最后一行。
出于好奇,为什么我最初的代码不起作用?为什么我需要在 $_SESSION['question'] 之后添加一个额外的 [] 才能正常工作?
(请注意,为了保持帖子简短,我没有包含连接数据库和查询等的代码,因为我对这部分代码没有任何问题)
非常感谢。
最佳答案
在 while
循环中,您不断地为 session 变量赋值(因此会覆盖其先前的值):$_SESSION['question'] = $row
。因此,在循环结束时, session 变量的值仅包含循环的最新 $row
。
通过添加空括号,您可以告诉 PHP 您的 session 变量是一个数组。现在,在每个循环期间,PHP 不会用 $row
替换您的 session 变量,而只是将 $row
添加到数组中。
关于php - 使困惑。 $_SESSIONS 之后有两个方括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863881/