thinkphp 分页类源码详细解读(带实例解读)

thinkphp的分页类是非常常用的一个类,所以特别详细看了源码记录下来,以方便自己随时复习,这里的thinkphp是3.23的版本,但不管哪个版本万变不离其宗,只要搞懂了源码,换了版本也不会改变本质。首先把源码的解读放上来,不过由于表述能力问题可能没有那么清晰。 摘要由CSDN通过智能技术生成

thinkphp的分页类是非常常用的一个类,所以特别详细看了源码记录下来,以方便自己随时复习,这里的thinkphp是3.23的版本,但不管哪个版本万变不离其宗,只要搞懂了源码,换了版本也不会改变本质。


首先把源码的解读放上来,不过由于表述能力问题可能没有那么清晰。

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------
namespace Think;

class Page_my{
    public $firstRow; // 起始行数
    public $listRows; // 列表每页显示行数
    public $parameter; // 分页跳转时要带的参数
    public $totalRows; // 总行数
    public $totalPages; // 分页总页面数
    public $rollPage   = 11;// 分页栏每页显示的页数
	public $lastSuffix = true; // 最后一页是否显示总页数

    private $p       = 'p'; //分页参数名
    private $url     = ''; //当前链接URL
    private $nowPage = 1;   //当前页数,默认为一

	// 分页显示定制
    private $config  = array(
        /*头部显示总共记录条数*/
        'header' => '<span class="rows">共 %TOTAL_ROW% 条记录</span>',
        /*第一页样式*/
        'prev'   => '<<',
        /*下一页样式*/
        'next'   => '>>',
        /*分页第一页*/
        'first'  => '1...',
        /*分页显示最后一页*/
        'last'   => '...%TOTAL_PAGE%',
        /*分页显示栏数的格式,如果要添加或减少显示的样式就改这里,例如不想显示尾页,去掉%END%即可*/
        'theme'  => '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',
    );

    /**
     * 架构函数
     * @param array $totalRows  总的记录数
     * @param array $listRows  每页显示记录数
     * @param array $parameter  分页跳转的参数
     */
    public function __construct($totalRows, $listRows=20, $parameter = array()) {
        /*检查分页参数在config文件里是否设置,如果设置了将$p设置额外该参数*/
        C('VAR_PAGE') && $this->p = C('VAR_PAGE'); //设置分页参数名称
        /* 基础设置 */
        $this->totalRows  = $totalRows; //设置总记录数
        $this->listRows   = $listRows;  //设置每页显示行数

        /*如果$parameter为空,则取get的参数,否则取设置的参数,
   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值