不在对象上下文中时使用$ this。 错误

<?

class Flip 
{

    private $db;

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

    public function flips()
    {
        $flips = array();

        $result = $this->db->Select()->Get('flips');
        if($result)
        {
            foreach ($result as $value) 
            {
                $flips[] = $value;
            }
            return $flips;
        }
        return false;
    }

    public function flipComment($id)
    {
        return $this->db->Select()->Where('id', $id)->Get('comments');
    }

}

Fatal error: Using $this when not in object context.

Any ideas how to fix? I don't want to recall class Database for each function. I need to be able to use $this->db

You cannot use $this because the functions are not part of a class.

    Class MyClass {
        private $db;

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

        public function comment()
        {
            $this->__construct();

            return $this->db->Select()->Get('comments');
        }
}

Make your variable static and in the constructor you can see if it's already set. Then you will only have to open the connection once and every time you call Flip it will be able to use that connection.

class Flip
{
    private static $db;

    function __construct()
    {
        if (!isset(self::$db))
            self::$db = new Database();
    }

    function comment()
    {
        return self::$db->Select()->Get('comments');
    }
}

More on the static keyword