-3

この質問を投稿して申し訳ありません - 私は彼らが何度か尋ねられ、答えられたことを知っています (つまり、 https://stackoverflow.com/questions/1787561/call-to-a-member-function-on-a-non-objectなど) 、しかし、提案された解決策はどれもうまくいかないようです。これは私が持っているものです:

class Common {

    private $model;

    public function _construct() {
        $this->model = Model::GetInstance();
        //$this->model->GetUserCollection();
    }

    public function validateusername($username) {
        $userlist = $this->model->GetUserCollection();
        $result = true;

        if ($username == false) {
            $this->error = "Please enter username.";
            $result = false;
        }
    }

}

// This is my DB model

class Model {

    private static $instance = null;
    private $conn = false;

    private function __construct() {
        if (!$this->connect()) {
            print "Unable to connect to database!";
            exit;
        }
    }

    public function connect() {
        if ($this->conn == false) {
            $this->conn = mysql_connect(DBHOST, DBUSER, DBPASS);

            if ($this->conn) {
                if (!mysql_select_db(DBNAME, $this->conn)) {
                    print "DB Connection Error!";
                    exit;
                }
            }
        }
        return $this->conn;
    }

    public function GetUserCollection() {
        return UserCollection::GetInstance();
        // return new UserCollection();
    }

    public static function GetInstance() {
        if (!self::$instance) {
            self::$instance = new Model();
        }
        return self::$instance;
    }
}

なぜそれはまさにこの行です: $userlist = $this->model->GetUserCollection(); モデルの新しいインスタンスを返しているにもかかわらず、エラーがスローされます。事前に感謝します、JJ。

4

1 に答える 1

0

コンストラクター名には、__constructという2つのアンダースコアを使用します。

于 2013-03-13T18:44:06.190 に答える