0
我是OOP的新手。我创建了这个名为Site的类,该类扩展了许多其他具有常见查询和特性的类。 这个特定的类“分页”,我需要从其他实例访问其方法,并访问发送给它的“内部”数据。这可能是坏的写法,但我想要一些帮助。php5访问另一个类的对象
<?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
"[email protected]$cat_to_choose."
"[email protected]$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"]);
一旦我这样做,我怎么访问htmlPagination
与产品实例处理这些数据?
问题是我对其他类也使用分页方法 –
他们每个人都可以实现这样的方法。 – Dan