首页 新闻 搜索 专区 学院

那个高手能帮我解释一下这段代码?

0
[已解决问题] 解决于 2012-03-12 22:56

$currentpage=8; //当前页
$halfper=4;//左右各有多少页
$totalpages=50;//总共有多少页

for($i=$currentpage-$halfper,$i>1||$i=1,$j=$currentpage+$halfper,$j<$totalpages||$j=$totalpages;$i<$j+1;$i++){
$linkpage .= ($i==$currentpage)?'<em rel="currentpage">'.$i.'</em>':'<a href="#" style="margin-left:8px;">'.$i.'</a>';
}

ps:这是一段分页代码...
 

逸夫的主页 逸夫 | 初学一级 | 园豆:0
提问于:2012-02-18 17:07
< >
分享
最佳答案
1

格式化一下,方便看:

$currentpage=8; //当前页
$halfper=4;//左右各有多少页
$totalpages=50;//总共有多少页
for(
$i=$currentpage-$halfper,$i>1||$i=1,$j=$currentpage+$halfper,$j<$totalpages||$j=$totalpages;
$i<$j+1;
$i++
)
{
$linkpage .= ($i==$currentpage)?'<em rel="currentpage">'.$i.'</em>':'<a href="#" style="margin-left:8px;">'.$i.'</a>';
}

把for里第一个语句提出来,就是这个结果了:

$currentpage=8; //当前页
$halfper=4;//左右各有多少页
$totalpages=50;//总共有多少页

$i=$currentpage-$halfper; //计算最左页应该是第几页
if($i<=1) //如果最左页不大于1就设置为1(其实这里==1时也不用设置)
$i=1;
$j=$currentpage+$halfper; //计算最右页应该是第几页
if($j>=$totalpages) //如果最右页大于等于总页数,设置为最大页
$j=$totalpages;

for(;$i<$j+1;$i++)
{
if($i==$currentpage)
$linkpage .= '<em rel="currentpage">'.$i.'</em>';
else
$linkpage .= '<a href="#" style="margin-left:8px;">'.$i.'</a>';
}
丁学 | 专家六级 |园豆:18530 | 2012-02-18 19:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册