将对象传递给PHP构造函数错误

lit*_*leK 3 php syntax scope object-properties

是否可以将对象传递给PHP类的构造函数,并将该对象设置为可由类中其余函数使用的全局变量?

例如:

class test {

   function __construct($arg1, $arg2, $arg3) {
      global $DB, $ode, $sel;

      $DB = arg1;
      $ode = arg2;
      $sel = $arg3;
   }

   function query(){
      $DB->query(...);
   }

}
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,我得到一个"对非对象的成员函数调用"错误.反正有没有这样做?否则,我必须直接将对象传递给每个单独的函数.

谢谢!

Cra*_*ast 6

您可能希望将它们分配给值$this.

在你的构造函数中,你会做:

$this->DB = $arg1;
Run Code Online (Sandbox Code Playgroud)

然后在你的查询函数中:

$this->DB->query(...);
Run Code Online (Sandbox Code Playgroud)

这应该与构造函数的其他参数类似地完成.

$this在实例上下文中是您如何引用当前实例.还有关键字parent::self::分别访问类的超类和静态成员的成员.