ホームページ >バックエンド開発 >PHPチュートリアル >写好的类怎么使用呢?
这个分页类不是我写的 我在网上看的 可是我不知道实际使用时是怎么用的?在我看到这个类的地方只有一个这个类 没有例子 我是新手算是基本能看懂吧 这个看懂仅仅是在这个类里面看懂 之前没有接触过面向对象 连类在实际中使用的都不知道 比如这个使用这个类传时给构造函数传两个参数就行了吗 连接数据库那些东西怎么没有呢 那怎么连接数据库呢?那些该写到哪里呢?
<code><?php class Page { private $total; //总记录 private $pagesize; //每页显示多少条 private $limit; //limit private $page; //当前页码 private $pagenum; //总页码 private $url; //地址 private $bothnum; //两边保持数字分页的量 //构造方法初始化 public function __construct($_total, $_pagesize) { $this->total = $_total ? $_total : 1; $this->pagesize = $_pagesize; $this->pagenum = ceil($this->total / $this->pagesize); $this->page = $this->setPage(); $this->limit = "LIMIT ".($this->page-1)*$this->pagesize.",$this->pagesize"; $this->url = $this->setUrl(); $this->bothnum = 2; } //拦截器 private function __get($_key) { return $this->$_key; } //获取当前页码 private function setPage() { if (!empty($_GET['page'])) { if ($_GET['page'] > 0) { if ($_GET['page'] > $this->pagenum) { return $this->pagenum; } else { return $_GET['page']; } } else { return 1; } } else { return 1; } } //获取地址 private function setUrl() { $_url = $_SERVER["REQUEST_URI"]; $_par = parse_url($_url); if (isset($_par['query'])) { parse_str($_par['query'],$_query); unset($_query['page']); $_url = $_par['path'].'?'.http_build_query($_query); } return $_url; } //数字目录 private function pageList() { for ($i=$this->bothnum;$i>=1;$i--) { $_page = $this->page-$i; if ($_page url.'&page='.$_page.'">'.$_page.' '; } $_pagelist .= ' <span class="me">'.$this->page.'</span> '; for ($i=1;$ibothnum;$i++) { $_page = $this->page+$i; if ($_page > $this->pagenum) break; $_pagelist .= ' <a href="'.%24this->url.'&page='.%24_page.'">'.$_page.'</a> '; } return $_pagelist; } //首页 private function first() { if ($this->page > $this->bothnum+1) { return ' <a href="'.%24this->url.'">1</a> ...'; } } //上一页 private function prev() { if ($this->page == 1) { return '<span class="disabled">上一页</span>'; } return ' <a href="'.%24this->url.'&page='.(%24this->page-1).'">上一页</a> '; } //下一页 private function next() { if ($this->page == $this->pagenum) { return '<span class="disabled">下一页</span>'; } return ' <a href="'.%24this->url.'&page='.(%24this->page+1).'">下一页</a> '; } //尾页 private function last() { if ($this->pagenum - $this->page > $this->bothnum) { return ' ...<a href="'.%24this->url.'&page='.%24this->pagenum.'">'.$this->pagenum.'</a> '; } } //分页信息 public function showpage() { $_page .= $this->first(); $_page .= $this->pageList(); $_page .= $this->last(); $_page .= $this->prev(); $_page .= $this->next(); return $_page; } } ?> </code>
这个分页类不是我写的 我在网上看的 可是我不知道实际使用时是怎么用的?在我看到这个类的地方只有一个这个类 没有例子 我是新手算是基本能看懂吧 这个看懂仅仅是在这个类里面看懂 之前没有接触过面向对象 连类在实际中使用的都不知道 比如这个使用这个类传时给构造函数传两个参数就行了吗 连接数据库那些东西怎么没有呢 那怎么连接数据库呢?那些该写到哪里呢?
<code><?php class Page { private $total; //总记录 private $pagesize; //每页显示多少条 private $limit; //limit private $page; //当前页码 private $pagenum; //总页码 private $url; //地址 private $bothnum; //两边保持数字分页的量 //构造方法初始化 public function __construct($_total, $_pagesize) { $this->total = $_total ? $_total : 1; $this->pagesize = $_pagesize; $this->pagenum = ceil($this->total / $this->pagesize); $this->page = $this->setPage(); $this->limit = "LIMIT ".($this->page-1)*$this->pagesize.",$this->pagesize"; $this->url = $this->setUrl(); $this->bothnum = 2; } //拦截器 private function __get($_key) { return $this->$_key; } //获取当前页码 private function setPage() { if (!empty($_GET['page'])) { if ($_GET['page'] > 0) { if ($_GET['page'] > $this->pagenum) { return $this->pagenum; } else { return $_GET['page']; } } else { return 1; } } else { return 1; } } //获取地址 private function setUrl() { $_url = $_SERVER["REQUEST_URI"]; $_par = parse_url($_url); if (isset($_par['query'])) { parse_str($_par['query'],$_query); unset($_query['page']); $_url = $_par['path'].'?'.http_build_query($_query); } return $_url; } //数字目录 private function pageList() { for ($i=$this->bothnum;$i>=1;$i--) { $_page = $this->page-$i; if ($_page url.'&page='.$_page.'">'.$_page.' '; } $_pagelist .= ' <span class="me">'.$this->page.'</span> '; for ($i=1;$ibothnum;$i++) { $_page = $this->page+$i; if ($_page > $this->pagenum) break; $_pagelist .= ' <a href="'.%24this->url.'&page='.%24_page.'">'.$_page.'</a> '; } return $_pagelist; } //首页 private function first() { if ($this->page > $this->bothnum+1) { return ' <a href="'.%24this->url.'">1</a> ...'; } } //上一页 private function prev() { if ($this->page == 1) { return '<span class="disabled">上一页</span>'; } return ' <a href="'.%24this->url.'&page='.(%24this->page-1).'">上一页</a> '; } //下一页 private function next() { if ($this->page == $this->pagenum) { return '<span class="disabled">下一页</span>'; } return ' <a href="'.%24this->url.'&page='.(%24this->page+1).'">下一页</a> '; } //尾页 private function last() { if ($this->pagenum - $this->page > $this->bothnum) { return ' ...<a href="'.%24this->url.'&page='.%24this->pagenum.'">'.$this->pagenum.'</a> '; } } //分页信息 public function showpage() { $_page .= $this->first(); $_page .= $this->pageList(); $_page .= $this->last(); $_page .= $this->prev(); $_page .= $this->next(); return $_page; } } ?> </code>
它只是一个分页类啊,你可以理解成 给一个数组分页,就这么简单。如果耦合数据库的东西就太复杂了。
直接include就可以用了
首先这是一个类 包含一些方法和属性,作用是用来「分页」,实例化后使用。
另外所谓「分页类」的主要作用无非是计算一个查询sql中limit,然后计算该显示多少页什么的,很简单,仔细看看内几个方法就明白了。
最后,这东西多了不说 十年八年的历史是有了,新学的话别管这些东西了,从新的开始,多理解基础,可以看看《php: the right way》也叫「php之道」还是什么的,跟上时代的脚步 哈哈
手机随便写了点,希望能有点儿帮助。