如何实现PHP中的高效搜索分页功能?

PHP搜索分页类

在PHP中,我们可以创建一个名为Pagination的类来实现搜索结果的分页功能,以下是一个简单的示例:

如何实现PHP中的高效搜索分页功能?插图1
(图片来源网络,侵删)
class Pagination {
    private $totalItems;
    private $itemsPerPage;
    private $currentPage;
    private $totalPages;
    public function __construct($totalItems, $itemsPerPage, $currentPage) {
        $this->totalItems = $totalItems;
        $this->itemsPerPage = $itemsPerPage;
        $this->currentPage = $currentPage;
        $this->totalPages = ceil($this->totalItems / $this->itemsPerPage);
    }
    public function getStartIndex() {
        return ($this->currentPage 1) * $this->itemsPerPage;
    }
    public function getEndIndex() {
        return min($this->getStartIndex() + $this->itemsPerPage 1, $this->totalItems 1);
    }
    public function hasPreviousPage() {
        return $this->currentPage > 1;
    }
    public function hasNextPage() {
        return $this->currentPage < $this->totalPages;
    }
    public function getPreviousPage() {
        return $this->hasPreviousPage() ? $this->currentPage 1 : null;
    }
    public function getNextPage() {
        return $this->hasNextPage() ? $this->currentPage + 1 : null;
    }
    public function getCurrentPage() {
        return $this->currentPage;
    }
    public function getTotalPages() {
        return $this->totalPages;
    }
}

使用示例

假设我们有一个包含100个项目的数组,我们希望每页显示10个项目,并当前在第3页,我们可以这样使用Pagination类:

$totalItems = 100;
$itemsPerPage = 10;
$currentPage = 3;
$pagination = new Pagination($totalItems, $itemsPerPage, $currentPage);
echo "当前页: " . $pagination->getCurrentPage() . "<br>";
echo "总页数: " . $pagination->getTotalPages() . "<br>";
echo "起始索引: " . $pagination->getStartIndex() . "<br>";
echo "结束索引: " . $pagination->getEndIndex() . "<br>";
echo "是否有上一页: " . ($pagination->hasPreviousPage() ? "是" : "否") . "<br>";
echo "是否有下一页: " . ($pagination->hasNextPage() ? "是" : "否") . "<br>";
echo "上一页: " . ($pagination->getPreviousPage() ?: "无") . "<br>";
echo "下一页: " . ($pagination->getNextPage() ?: "无") . "<br>";

这将输出以下信息:

当前页: 3
总页数: 10
起始索引: 20
结束索引: 29
是否有上一页: 是
是否有下一页: 是
上一页: 2
下一页: 4
如何实现PHP中的高效搜索分页功能?插图3
(图片来源网络,侵删)

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/48963.html

小末小末
上一篇 2024年9月11日 21:24
下一篇 2024年9月11日 21:35

相关推荐