如何在PHP中的类之间传递变量而不进行扩展

Jac*_*ack 2 php oop variables class extend

所以,我有这样的设置:

class System extends mysqli{

    function __construct(){
         //user variables such as $this->username are returned here
    }

}

$sys = new System();

class Design{

    function setting(){
        echo $sys->username;
    }

}

$design = new Design();
Run Code Online (Sandbox Code Playgroud)

然而,Design类不会回显用户名.我可以在Design类之外回显用户名,但不能在设计类中回显.我怎么能这样做?

Exp*_*lls 5

其他人的答案都很好,但你可以非常好地注入对系统的依赖:

class Design{

    private $sys;

    public function __construct(System $sys) {
       $this->sys = $sys;
    }

    function setting(){
        echo $this->sys->username;
    }
}
$sys = new System;
$design = new Design($sys);
Run Code Online (Sandbox Code Playgroud)