我有一系列布尔值,我想检查它们是否全部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
,但是,我总是看到按钮,即使在完成所有主题之后,我按它,没有任何反应。
由于
答案 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 };?>