2014-09-18 65 views
-1

即時通訊不是一個有經驗的程序員和即時通訊試圖瞭解我與我創建的類的問題。php類內類變量

我有類A的私有變量,這個私有變量存儲查詢MySQL數據庫的結果,並通過即時通訊類A.公共函數訪問此變量

我的目標是呼應了私有變量的值通過公共函數。我的問題是,當它存儲查詢結果時,這個私有變量在類中被轉換。

這裏私有變量的var_dump

object(stdClass)#4 (1) { 
    ["count(*)"]=> string(1) "8" 
} 

IM如何回聲出號真的糊塗 「8」

我嘗試這樣的:

echo $this->private 

但預期PHP犯規像這樣工作,並告訴我這一點:

"Object of class stdClass could not be converted to string" 

任何人都可以指向正確的方向嗎?

這裏是代碼:

class Quiz { 

    private $db; 
    private $query; 
    private $questions; 
    private $answers; 
    private $total; 

    public function __construct(){ 
     $this->db = new connection(); 
     $this->db = $this->db->dbConnection();  
    } 

    public function NumRows ($quiz) { 
     $this->query = $this->db->prepare("Select count(*) FROM ".$quiz.""); 
     $this->query->execute(); 
     $this->total = $this->query->fetchObject(); 
     var_dump($this->total); 
     echo $this->total; 
    } 


} 


$quiz = new Quiz(); 
$quiz->NumRows("01_ospf"); 
+1

這將是有一段代碼很有幫助。 – msfoster 2014-09-18 19:22:55

+0

'SELECT COUNT(*)AS count'。然後:'echo $ quiz-> getPrivate() - > count;' – Flavius 2014-09-18 19:25:38

+0

除了ENTIRE代碼庫中只有一個函數外,其他函數永遠不會執行'echo':一個看起來像'render($ template,array $ data)'的函數調用'extract()'然後'include $ template;'。其他地方,請正確使用返回值。 – Flavius 2014-09-18 19:28:18

回答

3

$this->private是一個對象,所以你需要訪問屬性。該物業被命名爲count(*)。因此,使用這樣的:

echo $this->private->{"count(*)"}; 

你應該給列一個別名,所以你不必使用這種令人費解的語法。例如。如果你這樣做:

SELECT COUNT(*) AS count ... 

,那麼你可以這樣寫:

echo $this->private->count;