這是我第一次使用OOP在PHP 5 ..所以這是我的問題..訪問類變量
我有一個包含一個名爲類類DISP文件disp.php(在MVC模型)
<?php
class disp{
public $n_pages;
public $current_page;
private $cmd2;
/***************SQL command generator*******************/
private function getCmd2($cmd1,$id,$first_entry,$perpage,$tri){
$cmd2=str_replace('COUNT(*)','*',$cmd1);
$cmd2=$cmd2.' ORDER BY '.$id.' '.$tri.' LIMIT '.$first_entry.','.$perpage;
return $cmd2;
}
/********************Items display******************/
function dispItems($cmd1,$id,$perpage,$tri){
require('global/connection.inc.php');
try{
foreach($pdo->query($cmd1)as $r){
$n_pages=ceil($r[0]/$perpage);
if (isset ($_GET['pg'])){
$current_page=intval($_GET['pg']);
if ($current_page>$n_pages){
$current_page=$n_pages;
}
if ($current_page<=0){
$current_page=1;
}
}
else{
$current_page=1;
$_GET['pg']=1;
}
}
$i=1;
$first_entry=($current_page-1)*$perpage;
$objet=new disp();
$cmd2=$objet->getCmd2($cmd1,$id,$first_entry,$perpage,$tri);
$data=array();
$i=0;
foreach($pdo->query($cmd2) as $r){
$data[$i]=$r;
$i++;
}
return $data;
}catch(PDOException $e){}
}
}
這是文件news.php(MVC中的控制器):
require MODELS_DIR.'disp.php';
$objet=new disp();
$news=$objet->dispItems('SELECT COUNT(*) FROM tbl_nouveautes','ID_EVENT',10,'DESC');
$c_page=$objet->$current_page;
$n_pages= $objet->$n_pages;
require VIEWS_DIR.'disp-news.php';
在這段代碼中,我創建的類型DISP的對象(客體)......我想用聲明的變量在函數dispItems中,($ n_pages和$ curre nt_page)在視圖(disp-news.php)
所以我認爲類變量是相同的變量在函數dispItems()...但是當試圖從控制器訪問它們...使用對象。它顯示了我一個錯誤:
參見:
Notice: Undefined variable: n_pages in C:\Program Files\EasyPHP-5.3.6.1\www\example\admin\global\news.php on line 14
Fatal error: Cannot access empty property in C:\Program Files\EasyPHP-5.3.6.1\www\example\admin\global\news.php on line 14
$ n_pages的Inspite和$ current_pages公職類中的DISP
預先感謝您
它只是複製代碼時出錯...謝謝:-) – SmootQ
編輯,但是這不是錯誤.. – SmootQ
對不起Dogbert,我沒有觀察到第二個$之後 - >,我以爲你說的只是每一行中的第一個$ +1 – SmootQ