PHP数组检查不起作用

时间:2013-06-10 18:38:26

标签: php html button

我有一系列布尔值,我想检查它们是否全部TRUE生成一个按钮,如果不是则没有。但是,我总是看到按钮,当我按下它时,它什么也没做,即使它应该做什么。

请找到以下代码:

以下代码是我拥有数组的地方,即index.php

<?php

session_start();

session_unset();
session_destroy();

$_SESSION["contestant_name"]["topics_done"] = array( FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE ); // topics done
$_SESSION["contestant_name"]["topics_score_correct"] = array();
$_SESSION["contestant_name"]["topics_score_wrong"] = array();
$_SESSION["contestant_name"]["correct"] = 0;
$_SESSION["contestant_name"]["wrong"] = 0;

?>

下一个代码来自choosetopic.php

<?php
}

print_r($_SESSION["contestant_name"]["topics_done"]);

if (checkIfAllTrue($_SESSION["contestant_name"]["topics_done"])) {
?>
        <button onclick="complete.php">finish</button>
<?php
}

function checkIfAllTrue ($arr) {
    for($i = 0; $i < count($arr); $i++) {
        if (!$arr[$i])
            return FALSE;
    }

    return TRUE;
}

?>
    </body>
</html>

我总是看到按钮。是什么让这种情况发生?它应该看看数组是否全部是TRUE s然后它应该添加按钮,当按下时,转到complete.php,但是,我总是看到按钮,即使在完成所有主题之后,我按它,没有任何反应。

由于

1 个答案:

答案 0 :(得分:1)

修改

我刚刚在线下面运行了这段代码, 在http://writecodeonline.com/php/ 和它的工作.....复制它并在那里自己测试...... 所以你的问题可能与会话有关。 当var_dump你正在测试$ _SESSION变量时,你会得到什么?

你确定你在choosepage.php文件的顶部有 session_start()吗? 你在index.php文件的开头运行它,但检查choosepage.php文件

如果那不是问题,那么我的猜测是你每次处理它时都要重置变量,而不是实际更改正确的键......因此NULL值是第一个时间周期

  function checkTrue ($arr) {
  for($i = 0; $i < count($arr); $i++) {
    if (!$arr[$i])
        return FALSE;
   }

   return TRUE;
   }

  $array = array(false,true,true,true); //This is your $_SESSION variable simulated

 if (checkTrue($array)) {?>
    <button onclick="complete.php">finish</button>
 <?php };?>