-2

こんにちは、PHP でシングルトン パターンを学習したいのですが、クラスがあります。

class Database
{
    private static $instance;

    private function __construct() 
    { 
    }

    public static function getInstance()
    {
        if (!self::$instance)
        {
            self::$instance= new Database();
        }

        return self::$instance;
    }

    public function query($table)
    {
         $this->query = 'select * from $table';
    }

    public function result()
    {
        echo $this->query;

    }

}


$db = Database::getInstance();

そして今、result() メソッドを呼び出して、シングルトンを使用して "select * from $table" である query() によって設定された値を出力することは可能ですか?

私は自分のコードを次のようにしたい:

$db->query('user_tb')->result();

//output
select * from user_tb;
4

2 に答える 2

-1

メソッド チェーンを使用するには、チェーンするすべての関数が $this を返すようにします。

DB::getInstance()->query()->result();次に、 .=を行うことができます

したがって、クエリは少なくとも $this を返す必要があります。

また、戻り値パラメーターによるエラー処理を行わないため、通常、メソッド チェーンを使用する場合は例外処理を使用してエラーを処理する必要があります。

のように、あなたはできません

if(!$db->query) {
    error_log('bleh');
}
于 2012-06-11T07:42:24.117 に答える