我是OOP的新手。我创建了这个名为Site的类,它被扩展但许多其他类具有常见的查询和提供。 这个特殊的类“分页”,我需要从其他实例访问它的方法并访问“内部”发送给它的数据。这可能写得不好但我想要一些帮助。
<?php
class Site {
public $lang;
public $user_agent;
public $user_lang;
public $url;
public $bots;
public $total_items;
public $itemsPerPage;
public $page;
class Products extends Site {
function getProducts($last = false, $id = false, $cat = false, $active_only = false, $lang_pref = false, $itemsPerPage = false, $page =false){
//code
//prepare paging
if(!empty($itemsPerPage)){
//count total product
$count = mysql_query(
"SELECT COUNT(*)
FROM products_list
".@$cat_to_choose."
".@$lang."
")
or die(mysql_error());
$count = mysql_fetch_row($count);
$total_items = $count[0];
// set vars for Pagination class
$this->total_items = $total_items;
$this->itemsPerPage = $itemsPerPage;
$this->page = mysql_real_escape_string($page);
//send data to class Pagination
$pagination = new Pagination();
$start = $pagination->createPagination();
$limit = "LIMIT ".$start.", ".$itemsPerPage;
}
//code
}
//other classes
class Pagination extends Site {
function createPagination(){
// get total pages by dividing
$this->total_pages = $this->total_items/$this->itemsPerPage;
//round to highest integer
$this->total_pages= ceil($this->total_pages);
switch($this->page){
case "0":
case null:
case "1":
$start = 0;
break;
default :
$start = ($this->page-1)*($this->itemsPerPage);
break;
}
return $start;
}
public function htmlPagination(){
if($this->page == 0){
$this->page = 1;
}
$pagination = array(
"total_pages" => $this->total_pages,
"current_page" => $this->page,
"total_items" => $this->total_items
);
return $pagination;
}
}
}
PHP代码
$products_object= new Products();
$products = $products_object->getProducts(false,false,$cat, true, $site->lang, $itemsperpage, @$_GET["pag"]);
完成此操作后,如何使用Products实例中处理的数据访问htmlPagination
?
答案 0 :(得分:1)
您可以将分页设置为products对象的字段,并使用get方法或将其定义为public并直接读取它来检索它。
产品:
class Products
{
...
private $pagination;
public function getProducts(...)
{
...
$this->pagination = new Pagination();
...
}
public function getPagination()
{
return $this->pagination;
}
}
然后:
$product->getPagination()->htmlPagination();
检索html分页。