Class Pagination {
public $total; // 总条数
public $page_size; // 每页显示多少条
public $limit; // 偏移量
public $current_page; // 当前页
public $page_num; // 总页码
public $page_status; // 状态 1/有下一页 0/没有下一页
/**
* API 分页
* @param $current_page
* @param $page_size
* @param $total
* @return array|bool
*/
public function getPage($current_page, $page_size, $total) {
if (empty($current_page) && empty($page_size) && empty($total)) {
return false;
}
$this->total = $total ? $total : 1;
$this->page_size = $page_size < 1 ? 1 : $page_size;
$this->current_page = $current_page < 1 ? 1 : $current_page;
$this->page_num = ceil($this->total / $this->page_size);
$this->page_status = floor($this->total / ($current_page * $this->page_size)) >= 1 ? 1 : 0;
$this->limit = ($this->current_page-1) * $this->page_size . "," . $this->page_size;
$this->limit = explode(',',$this->limit)[0] == 0 ? explode(',',$this->limit)[1] : explode(',', $this->limit);
if (is_array($this->limit)) {
$this->limit = array(array_values($this->limit)[0] => array_values($this->limit)[1]);
}
return array(
'total' => $this->total,
'page_size' => $this->page_size,
'current_page' => $this->current_page,
'page_num' => $this->page_num,
'limit' => $this->limit,
'page_status' => $this->page_status,
);
}
}