使用PHP for循环将$_GET变量存入$_SESSION时遇到问题
问题修复:PHP循环将GET变量存入SESSION失败
你的代码问题出在数组键名的字符串拼接错误,双引号内直接写变量即可解析,不需要用.和单引号拼接,否则会把这些符号当成键名的一部分,导致无法正确匹配GET参数。
修正后的代码写法1(推荐,双引号直接解析变量):
// 必须先开启SESSION session_start(); for ($x = 0; $x <= 2; $x++) { $_SESSION["u{$x}_first_name"] = $_GET["u{$x}_first_name"]; }
修正后的代码写法2(单引号拼接变量):
session_start(); for ($x = 0; $x <= 2; $x++) { $_SESSION['u' . $x . '_first_name'] = $_GET['u' . $x . '_first_name']; }
额外注意事项:
- 必须在操作SESSION变量前调用
session_start(),否则无法读写SESSION。 - 为避免Undefined index错误,建议先判断GET参数是否存在:
session_start(); for ($x = 0; $x <= 2; $x++) { $key = "u{$x}_first_name"; if (isset($_GET[$key])) { $_SESSION[$key] = $_GET[$key]; } }
内容的提问来源于stack exchange,提问作者user1296114
相关产品推荐
相关产品推荐

