求助:PHP中for循环的break/continue及每14条分页循环实现
PHP中for循环的break、continue用法及分页循环实现
一、break 和 continue 的核心区别
先给你掰明白这俩关键字的不同作用,直接上例子更直观:
1. break:终止整个循环
break 会立刻跳出当前所在的循环(嵌套循环里还能指定跳出外层,不过日常用得少),不管后续的循环条件是否满足。比如:
for ($i = 1; $i <= 10; $i++) { if ($i == 5) { break; // 当i等于5时,直接终止整个循环 } echo $i . ' '; } // 输出:1 2 3 4
2. continue:跳过当前循环的剩余代码
continue 不会终止整个循环,只是跳过当前迭代里剩下的代码,直接进入下一次循环的条件判断。比如:
for ($i = 1; $i <= 10; $i++) { if ($i % 2 == 0) { continue; // 遇到偶数就跳过,不执行后面的echo } echo $i . ' '; } // 输出:1 3 5 7 9
二、实现每14次循环分页的需求
你提到的起始值为14的循环,要每14次停一次、下一页继续执行,本质就是分页遍历。我们可以通过URL里的分页参数来控制每次循环的起始和结束位置,具体代码如下:
1. 核心循环逻辑
// 总条目数(替换成你实际的$num_parts值) $num_parts = 100; // 每页固定执行14次循环 $per_page = 14; // 当前页码:从URL获取,默认显示第1页 $current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // 计算当前页的起始p值:第1页从14开始,第2页从14+14=28开始,以此类推 $start_p = 14 + ($current_page - 1) * $per_page; // 计算当前页的结束p值(因为循环条件是$p < $num_parts,所以结束值不包含在内) $end_p = $start_p + $per_page; // 执行当前页的循环 for ($p = $start_p; $p < min($end_p, $num_parts); $p++) { // 这里写你原来循环里的业务逻辑 echo "当前处理的p值:" . $p . "<br>"; }
2. 添加分页导航(上一页/下一页)
为了让用户能切换页面,循环结束后可以加上分页链接:
// 上一页链接:只有当前页不是第1页时显示 if ($current_page > 1) { echo '<a href="?page=' . ($current_page - 1) . '">上一页</a> '; } // 下一页链接:只有还有未处理的条目时显示 if ($end_p < $num_parts) { echo '<a href="?page=' . ($current_page + 1) . '">下一页</a>'; }
逻辑说明
- 第1页:循环
p从14到27(正好14个数值) - 第2页:循环
p从28到41,以此类推 - 最后一页:如果剩下的条目不足14个,
min($end_p, $num_parts)会自动取$num_parts,避免循环超出范围
这样就能完美实现你要的“每14次循环停止,下一页继续”的效果啦!
内容的提问来源于stack exchange,提问作者Kaustav Dey
相关产品推荐
相关产品推荐

