PHP数据分页类

<?php
/*

  • Copyright (c) 2013
  • 数据分页类
  • $Id: page.class.php 1 2013-04-24 19:54:30 DuZeFang $
    */
    class Page
    {
    private $total; //数据总数
    private $pageSize = 8; //一页多少条数据
    private $pageCurrent; //页数
    private $page; //当前页码
    private $nextPage; //下一页
    private $prevPage; //上一页
    private $url; //跳转url
    private $pageFirst = 1; //首页
    private $pageTail; //尾页
    private $offset; //偏移量
    private $startPage; //序列字号开始 1 2 3 4 5 6 7 8 9 10
    private $endPage; //序列字号结束 1 2 3 4 5 6 7 8 9 10

    public function __construct($total,$pageSize = 8){

    $this-&gt;total = $total;
    $this-&gt;pageSize = $pageSize;
    
    $this-&gt;pageCurrent = $this-&gt;getPageCurrent();
    $this-&gt;page = $this-&gt;getPage();
    $this-&gt;nextPage = $this-&gt;getNextPage();
    $this-&gt;prevPage = $this-&gt;getPrevPage();
    $this-&gt;pageTail = $this-&gt;getPageCurrent();
    $this-&gt;offset = $this-&gt;getOffset();
    $this-&gt;getSeq();
    

    }

    private function getPageCurrent(){

    return ceil($this-&gt;total/$this-&gt;pageSize);
    

    }

    private function getNextPage(){

    $page = $this-&gt;page + 1;
    if($page &gt; $this-&gt;pageCurrent)
        return $this-&gt;pageCurrent;
    return $page;
    

    }

    private function getPrevPage(){

    $page = $this-&gt;page - 1;
    if($page &lt; 1)
        return 1;
    return $page;
    

    }

    private function getOffset(){

    return ($this-&gt;page - 1)*$this-&gt;pageSize;
    

    }

    //获取序列号的开始和结束
    private function getSeq(){

    if($this-&gt;page &lt;= 5)
    {
        $this-&gt;startPage = 1;
        if($this-&gt;pageCurrent &lt;= 10){
            $this-&gt;endPage = $this-&gt;pageCurrent;
        }else{
            $this-&gt;endPage = 10;
        }
    }elseif($this-&gt;page &lt; $this-&gt;pageCurrent){
        $this-&gt;startPage =  $this-&gt;page - 5;
        $this-&gt;endPage = $this-&gt;page + 4;
        if($this-&gt;endPage &gt;= $this-&gt;pageCurrent){
            $this-&gt;endPage = $this-&gt;pageCurrent;
        }
    }else{
        $this-&gt;startPage = $this-&gt;page - 6;
        $this-&gt;endPage = $this-&gt;pageCurrent;
    }
    

    }

    private function getPage(){

    if(isset($_GET['page'])){    
        return ($_GET["page"] &lt; 1)?1:(($_GET["page"] &gt; $this-&gt;pageCurrent)?$this-&gt;pageCurrent:$_GET["page"]);
    }else{
        return 1;
    }
    

    }

    public function showPage(){

    $pager = array(
        'total'    =&gt;    $this-&gt;total,
        'pageSize'    =&gt;    $this-&gt;pageSize,
        'pageCurrent' =&gt; $this-&gt;pageCurrent,
        'page' =&gt; $this-&gt;page,
        'nextPage' =&gt; $this-&gt;nextPage,
        'prevPage' =&gt; $this-&gt;prevPage,
        'pageFirst' =&gt; $this-&gt;pageFirst,
        'pageTail' =&gt; $this-&gt;pageTail,
        'offset'    =&gt;    $this-&gt;offset,
        'startPage'    =&gt; $this-&gt;startPage,
        'endPage'    =&gt; $this-&gt;endPage
    );        
    return $pager;
    

    }
    }