我遇到一些PHP代码问题。基本上我有一个id值数组$challengeIDs
和一个值$number
,它存储此数组中的当前位置(它会影响将哪个页面加载到正文中)。我想在移动到下一个ID值之前检查我是否没有到达数组的末尾。
if (($number+1) < (count($challengeIDs)-1)) {
$n = $number+1;
echo "window.location = './challenge.php?n={$n}';";
} else {
$_SESSION['n'] = 0;
$_SESSION['playlist'] = "";
echo "window.location = './index.php';";
}
echo "});}</script>";
我在此代码段的上方放置了console.log()
语句,该语句报告$number
的值为1且count($challengeIDs)
为4.但由于某种原因,页面将进行索引.php而不是转到列表中的下一页。它可能在代码的其他地方,但任何想法?感激地收到任何建议:)
编辑: 这是控制台输出。这些值将输出到此代码段之前的行,并且页面会根据值更改。它从第1页(n = 0)到第2页(n = 1)没有问题,但是失败并转到index.php转到第3页(n = 2)。
解: 结束了它的工作 - 抱歉,这根本与这段代码无关。在其他地方进行了检查,根据GET参数错误地重置了值。
答案 0 :(得分:1)
这可能听起来很愚蠢,但我认为你可能使用错误的if子句 在代码中我可以看到
if (($number+1) < (count($challengeIDs)-1)) {
你写了那个
count($ challengeIDs)是4。
所以当页面为3(n = 2)时你的问题就出现了,因为它会转到else子句,因为
if (($number+1) < (count($challengeIDs)-1))
装置
if ((2+1) < (4-1))
和3不小于3.所以改变if子句。