【问题标题】:Session variable is set, but PHP reporting it is not set?会话变量已设置,但 PHP 报告未设置?
【发布时间】:2012-03-15 06:56:04
【问题描述】:
print_r($_SESSION);
给我这个:
[帖子] =>
[验证] => 3bae5359ea60d7f00d553ae5d091ae4b
[令牌] =>
token 已设置,但为空,对吗?当我实现这个时:
if (!isset($_SESSION['token'])) {
die("Token not set");
}
脚本死了。为什么会这样?
【问题讨论】:
标签:
php
session
variables
isset
【解决方案1】:
来自documentation-
bool isset (mixed $var [, mixed $...])
isset 判断变量是否已设置且不为 NULL
还有-
返回值:如果 var 存在并且值不是
NULL,否则为 FALSE。
因此,如果提供的参数包含 NULL 或者它根本不存在,那么 isset 将返回 FALSE。这正是您的脚本正在发生的事情,因此,它死了。
【解决方案2】:
$_SESSION['token'] 没有任何价值,这就是为什么它会陷入 if 条件并死亡。