2014-06-27 39 views
-4

我想在PHP中創建一個簡單的類,但是我在調​​用方法時遇到了一些麻煩。類內部的調用函數

<?php 
include('MySQL.php'); 

class User { 

    var $sql; 

    function _construct(){ 
     // SQL connection 

     $this->sql = new MySQL(<<hidden>>, <<hidden>>, <<hidden>>); 
    } 

    public function login($username, $password){ 
     // TODO 
    } 
} 
?> 

//TODO部分,我想去做$this->sql->select('users')通話,但它不會讓我這樣做。它給出了一個錯誤,並說sql是一個非對象。

+0

功能? O.o –

+0

你確定你的sql連接正在工作嗎?在構造函數內部使用一些mysqli錯誤,看看發生了什麼。 –

回答

3

你的「_construct」缺少_(你必須有兩個),它不會被調用。更改爲:

public function __construct(){ 

它應該工作。還要記住要公開。

如果未調用它,則您的$ sql變量未初始化,並且實際上是PHP的非對象。

此外,您還可以精確的變量聲明它的時候,而不是使用過時的var關鍵字能見度:對象的

private $sql; 
+1

如果沒有提供說明符,那麼它總是公開! –

+0

這是真的,但它並不傷害它的準確性。 – blue112

+0

'var $ sql;'這真的是有效的PHP?我從來沒有目睹過某人聲明某個類的變量。 – r3wt