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

$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:这是一段分页代码...


斯蒂芬大帝
浏览 447回答 1
1回答

慕后森

格式化一下,方便看:$currentpage=8;&nbsp;//当前页 $halfper=4;//左右各有多少页 $totalpages=50;//总共有多少页 for( &nbsp;&nbsp;&nbsp;&nbsp;$i=$currentpage-$halfper,$i>1||$i=1,$j=$currentpage+$halfper,$j<$totalpages||$j=$totalpages; &nbsp;&nbsp;&nbsp;&nbsp;$i<$j+1; &nbsp;&nbsp;&nbsp;&nbsp;$i++ ) { &nbsp;&nbsp;&nbsp;&nbsp;$linkpage&nbsp;.=&nbsp;($i==$currentpage)?'<em&nbsp;rel="currentpage">'.$i.'</em>':'<a&nbsp;href="#"&nbsp;style="margin-left:8px;">'.$i.'</a>';&nbsp; }把for里第一个语句提出来,就是这个结果了:$currentpage=8;&nbsp;//当前页 $halfper=4;//左右各有多少页 $totalpages=50;//总共有多少页 $i=$currentpage-$halfper;&nbsp;//计算最左页应该是第几页 if($i<=1)&nbsp;//如果最左页不大于1就设置为1(其实这里==1时也不用设置) &nbsp;&nbsp;&nbsp;&nbsp;$i=1; $j=$currentpage+$halfper;&nbsp;//计算最右页应该是第几页 if($j>=$totalpages)&nbsp;//如果最右页大于等于总页数,设置为最大页 &nbsp;&nbsp;&nbsp;&nbsp;$j=$totalpages; for(;$i<$j+1;$i++) { &nbsp;&nbsp;&nbsp;&nbsp;if($i==$currentpage) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$linkpage&nbsp;.=&nbsp;'<em&nbsp;rel="currentpage">'.$i.'</em>'; &nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$linkpage&nbsp;.=&nbsp;'<a&nbsp;href="#"&nbsp;style="margin-left:8px;">'.$i.'</a>'; }
打开App,查看更多内容
随时随地看视频慕课网APP