会话变量已设置,但PHP报告它没有设置?
问题描述:
print_r($_SESSION);
给了我这样的:会话变量已设置,但PHP报告它没有设置?
[post] => [verify] => 3bae5359ea60d7f00d553ae5d091ae4b [token] =>
标记设置,但空,对不对?当我执行此操作时:
if (!isset($_SESSION['token'])) {
die("Token not set");
}
该脚本死亡。这是为什么发生?
答
布尔isset(混合是$ var [,混合$ ...])
isset确定是否变量被设置,而不是NULL
另外 -
返回值:返回TRUE如果var存在且其值不等于 NULL,否则返回FALSE。
因此,如果提供的参数包含NULL或者它根本不存在,那么isset
将返回FALSE
。这正是您的脚本所发生的情况,并因此而死亡。
+0
啊,傻了。谢谢。 (当它让我在10米时会接受) – Norse 2012-03-15 07:00:16
答
$ _SESSION ['token']中没有任何值,这就是为什么它在条件下死亡并死亡的原因。
该值可能为空。 – 2012-03-15 06:58:49