我这里有一个代码,应该可以继续到670
$pages = 670;
$part1 = 16;
$part2 = 31;
$part3 = 99;
for ($i=1; $i<=$pages; $i++){
if ($i == 1){
echo "1st part, ";
}elseif ($i == $part1){
$pages = $part2 - $part1;
echo $pages . ", ";
$pages = 0;
}elseif ($i == $part2){
$pages = $part3 - $part2;
echo $pages . ", ";
$pages = 0;
}
echo "<strong>" . $i . "</strong>" . ", ";
}
但是当我打开php时,结果将是:
问题是什么,所以我的for循环会继续?
*注意:part2 - part1 = 15,part 3 - part2 = 68。
答案 0 :(得分:3)
行:$pages = 0;
是问题所在。更改变量名称。
答案 1 :(得分:3)
$i
点击16后,您设置$pages = 0;
,因此条件$i <= $pages
变为false并且循环停止。
答案 2 :(得分:1)
你改变了
$pages = 0;
这就是为什么它不会继续下去,因为它不再是670了。
答案 3 :(得分:0)
如果您检查$i == $part1
示例:
$i = 16;
elseif($i == $part1) // true
{
$pages = $part2 - $part1; // $pages = 15 -> for loop = for($i <= $pages) will break cause $i = 16
echo $pages . ", ";
$pages = 0; // -> again forloop, $i is bigger then pages cause pages = 0;
}
查看您的变量,也许您可以向我们解释您想要做什么,然后我们可以帮助您解决它。
答案 4 :(得分:0)
你到底想要达到什么目的?此时,当您执行第一个elseif部分,即$ i == $ part1时,将$ pages重置为0.因此,您打印非粗体15,然后以粗体显示值16.这意味着此时$ i == 16和$ pages == 0.因此你将退出循环;条件$ i&lt; = $ pages将评估为false。
如果您只想数到670,为什么不删除两者,$ pages = $ part2 - $ part1;和$ pages = 0;声明?你可以使用echo($ part2 - $ part1)。 “,”;直接
同样适用于第二个elseif块