0

我正在测试我为我的客户创建的一个小型 wordpress 插件,但我正在测试的其中一台计算机上出现问题。我在想它可能没有保存$_SESSION数据...

它给了我一个无效的论据foreach()

foreach ($_SESSION['page-1'] as $key => $value) {
    $score += $value * 2;
}

奇怪的是,它适用于我的台式机和笔记本电脑,但不适用于我正在测试的第二台台式机。

基本上,它所做的是从前一页foreach()获取信息,然后将其转换为当前页的新变量。$_SESSION

4

1 回答 1

1

看来您的会话变量$_SESSION['page-1']不是数组。只需在进入 foreach 之前检查它:

if (is_array($_SESSION['page-1'])) {
    foreach (...) {
        ...
    }
}

它是以下之一:

  • 您不是$_SESSION['page-1']在任何地方设置为数组,而是与任何其他类型一样。
  • 您忘记启动会话(使用session_start),或者您的脚本中存在逻辑错误,导致$_SESSION['page-1']在某些时候无法设置或取消设置,从而导致foreach (NULL as ...)触发错误。

请记住:您必须以以下方式开始会话:

session_start();

每次您尝试获取或设置会话变量时。否则,您只是在设置或检索未定义的变量。

于 2013-03-12T21:50:06.617 回答