如果条件A为真,则使用设置A,条件用于循环,如果为假,则使用设置B,用于循环的条件。
if ($_POST['Latest'] == 1):
for ($i=$date_to; $i>=$date_from; $i-=86400)
else:
for ($i=$date_from; $i<=$date_to; $i+=86400)
endif;
此代码给出了一个Parse错误:语法错误,意外的T_ELSE。
答案 0 :(得分:3)
if ($_POST['Latest'] == 1){
for ($i=$date_to; $i>=$date_from; $i-=86400){
// EXECUTE SOME CODE...
}
}else{
for ($i=$date_from; $i<=$date_to; $i+=86400){
// EXECUTE SOME CODE...
}
}
}
答案 1 :(得分:1)
这里有正确的代码:
if ($_POST['Latest'] == 1) {
for ($i=$date_to; $i>=$date_from; $i-=86400) {
// do stuff
}
} else {
for ($i=$date_from; $i<=$date_to; $i+=86400) {
// do stuff
}
}
答案 2 :(得分:0)
你需要在for循环之后添加一些东西,添加大括号或者更好,然后使用更好的语法,如前面的答案所示。
没有花括号的for循环下一个语句。所以基本上你会尝试“其他”$date_from
次。
你的代码应该像这样工作:
if ($_POST['Latest'] == 1):
for ($i=$date_to; $i>=$date_from; $i-=86400) {}
else:
for ($i=$date_from; $i<=$date_to; $i+=86400) {}
endif;
答案 3 :(得分:0)
您可以查找以下语法:
$l = (int) filter_input(INPUT_POST, 'Latest', FILTER_SANITIZE_NUMBER_INT);
for (
$i = ($l ? $date_from : $date_to);
$l ? $i >= $date_from : $i <= $date_to;
$i += 86400 * ($l ? -1 : 1)
):
continue;
endfor;