您的位置:首页 >如何正确获取和显示$_SESSION值
发布于2026-02-04 阅读(0)
扫一扫,手机访问

在 PHP 中,若需在页面刷新后显示「上一次」存储的会话值(如上一轮生成的随机数),必须先读取当前会话中已存在的值,再更新为本次新值——否则新值会立即覆盖旧值,导致“前后值相同”的错误现象。
要正确获取并显示上一次会话中存储的 $_SESSION['previous_rand'],关键在于读取与赋值的顺序:必须在覆盖 session 变量之前,先读取它当前保存的值。
在原始代码中,问题出在这里:
$rand = rand(1000,9999); $_SESSION['previous_rand'] = $rand; // ❌ 立即覆盖!此时 $_SESSION['previous_rand'] 还未被读取 echo "Previously generated RAND: " . $_SESSION['previous_rand']; // 打印的是刚存进去的新值
这导致“上次”和“本次”显示完全一致——因为 $_SESSION['previous_rand'] 在 echo 之前已被新随机数覆盖。
✅ 正确做法是:先读取旧值,再更新 session:
<?php session_start(); // 1. 先读取上一次存储的值(若存在,否则为 null 或默认值) $previous_rand = $_SESSION['previous_rand'] ?? 'N/A'; // 2. 生成本次新随机数 $current_rand = rand(1000, 9999); // 3. 输出对比结果 echo "Current generated RAND: " . $current_rand; echo "<br>"; echo "Previously generated RAND: " . $previous_rand; // 4. 最后才更新 session,供下一次请求使用 $_SESSION['previous_rand'] = $current_rand; ?>
? 注意事项:
? 总结:Session 是跨请求的临时存储,它的“上一次值”本质就是当前请求开始时 session 中已有的值。牢记“先读、后写”,就能准确实现状态回溯。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9