PHP数组检查不工作


PHP Array Checking Not Working

我有一个布尔值数组,我想检查它们是否都是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,然而,我总是看到按钮,甚至在完成所有主题后,我按下它,什么也没有发生。

谢谢

EDIT

我刚刚在线运行了下面这段代码,在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 };?>