0
class DB 
{
    private static $_instance;
    private $_pdo,
            $_query,
            $_error = false,
            $_results,
            $_count = 0;

    private function __construct()
    {   
       try{
        $this->_pdo = new PDO($dsn, $user, $password);
       } catch(PDOException $e)
       {
        die($e->getMessage()); 
       }
    }

    private static function getInstance()
    {
        if(!isset(self::$_instance))
        {
            self::$_instance = new DB();
        }
        return self::$_instance;
    }

}

$db = DB::getInstance(); を使用してインスタンスを取得しようとすると、私は得る:致命的なエラー:コンテキストからのプライベートメソッドDB::getInstance()への呼び出し ''

私は何を間違っていますか?

4

3 に答える 3

0

@sectusが指摘したことに加えて、コンストラクターは何も返さ self::$_instance = new DB();ないため、実際には意味がありません。そのロジックを関数自体に移動することを検討してください。

if(!isset(self::$_instance))
{
    try{
        self::$_instance = new PDO($dsn, $user, $password);
    } catch(PDOException $e){
        die($e->getMessage()); 
    }
}
于 2014-09-08T01:51:15.893 に答える