扩展类时出错

问题描述:

在扩展类时遇到问题。扩展类时出错

这就是我要怎样做:

class Core 
{ 
    protected $db; 

    public function __construct() 
    { 
      $this->set_db_class(); 
    } 

    private function set_db_class() 
    { 
     include_once ('./classes/Database.php'); 
     $this->db = new Database(); 
    } 
} 


class Functions extends Core 
{ 
    public function __construct() 
    { 
       parent::__construct(); 
    } 

    public static function create_user() 
    { 
     $this->db->query ("INSERT ..."); 
    } 
} 

所以,这就是estructure,但我的问题是,我发现了以下错误:

致命错误:使用$这个时候而不是在第10行的/Applications/XAMPP/xamppfiles/htdocs/own/newsite/classes/class.Functions.php中的对象上下文中。

我能做些什么来解决这个问题?

声明create_user为非静态并从实例中调用它,否则(因为错误消息说)您不能访问$ this,因为$ this始终是对当前实例的引用。在静态的情况下,没有一个。

$functions = new Functions(); 
$functions->create_user(); 

代替

Functions::create_user(); 

如果您希望捆绑未逻辑上相互关联的功能,使用命名空间,而不是一类。你可以去一个全静态类(每一个微小的属性和方法是静态的,这样你就不需要一个实例在任何时候),但这是一个可怕的解决方案,而不是什么类应该用于。

+0

非常感谢,它的工作! – Lucas