php分頁(yè)代碼簡(jiǎn)單實(shí)現(xiàn)3行代碼的算法-一個(gè)好的分頁(yè)分頁(yè)時(shí),php分頁(yè)代碼簡(jiǎn)單實(shí)現(xiàn)
2021-11-13
分頁(yè)時(shí),除非只顯示上一頁(yè)/下一頁(yè)php分頁(yè)代碼簡(jiǎn)單實(shí)現(xiàn),否則需要計(jì)算起始頁(yè)和結(jié)束頁(yè)。看過很多代碼,用了很多if-else來(lái)實(shí)現(xiàn),代碼量大,不簡(jiǎn)潔。現(xiàn)在提供一個(gè)只需要3行代碼的算法。
一個(gè)好的分頁(yè)算法應(yīng)該具有以下優(yōu)點(diǎn):
當(dāng)前頁(yè)碼應(yīng)盡可能靠近中心。
如果“首頁(yè)”和“最后一頁(yè)”不可用(當(dāng)前在第一頁(yè)或最后一頁(yè)),請(qǐng)不要隱藏這兩組文本,以免更改鏈接按鈕的位置。
算法很簡(jiǎn)單。
下面的算法具有前面1和3的兩個(gè)優(yōu)點(diǎn)。
// $, 當(dāng)前頁(yè)碼。
// $, 鏈接數(shù)。
// $,當(dāng)前數(shù)據(jù)的總頁(yè)數(shù)。
// $,顯示時(shí)的起始頁(yè)碼。
// $end,顯示時(shí)的結(jié)束頁(yè)碼。
$ = max(1, $-($/2));
$end = min($ + $-1, $);
$ = max(1, $end-$ + 1);
= Math.max(1,-(/2));
end = Math.min(, +-1);
= Math.max(1, end-+ 1);