分页函数中几句代码求解释!
这两天看到一本PHP教材中的一个分页函数,输出大概是这样的:“上一页 … 4 5 6 7 8 … 下一页”(每页显示的页号链接数量设置为5)
但是涉及到每页显示的页号上限和下限值的定义方法和输出时,有下面两个疑问,麻烦各位帮忙解释一下,不胜感激!
1. 当前页显示的页码范围的上限和下限,如设置的范围$range是5,当前页是6,则$lrange和$rrange分别是4和8.请教一下,为什么红字那里是0而不是1?因为下限不可能是0呵,最小也就是1了。是不是呢?
$lrange = max(1, $page - (($range - 1) / 2));
$rrange = min($numofpages, $page + (($range - 1) / 2));
if (($rrange - $lrange) < ($range - 1)) {
if ($lrange == 1) {
$rrange = min($lrange + ($range - 1), $numofpages);
} else {
$lrange = max($rrange - ($range - 1), 0);
}
}
2.循环输出页码链接,为什么这里for循环里的初始值和条件不是前面得出的上限和下限,而是1和总页数?如果直接设置为下限和上限值,里面输入页号链接时就不要再这样判断了 if ($lrange <= $i and $i <= $rrange),是不是?
for($i = 1; $i <= $numofpages; $i++) {
if ($i == $page) {
$pagelinks .= $i;
} else {
if ($lrange <= $i and $i <= $rrange) {
$pagelinks .= '<a href="' . $currpage . '&page=' . $i .
'">' . $i . '</a>';
}
}
}
多谢!
[ 本帖最后由 cssart 于 2011-6-12 09:10 编辑 ]