我有一个布尔值数组,我想检查它们是否都是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 };?>