php - 使困惑。 $_SESSIONS 之后有两个方括号?

标签 php mysql session

如果这是一个非常简单的问题,我深表歉意。

我能够将 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/

相关文章:

php - 在函数内传递函数在函数内传递函数

php - 从 MySQL 创建 Excel 文件

mysql - 如何在 MySQL 中对 varchar 值求和

java - Struts 2 session 值未反射(reflect)在负载平衡环境/域 URL 中的 JSP 中

php - 仅从数据库 php (Laravel) 选择年份

php - 执行 javascript 和 php csv 导出脚本的最佳方式

php - 查询操作方法缓慢

sql - 存储/计算用户分数的最佳方式是什么?

php - 设置 session 以抓取页面

php - 如何使用session在php webservices和android之间工作