我的自定义 MysqliDatabase class 不是 return mysqli 的实例

My Custom MysqliDatabase class doesn't return an instance of mysqli

作为参考,我有3个classes +接口:

据我所知,问题出在 MysqliDatabase

class MysqliDatabase extends AbstractDB {

    public function __construct()
    {
        return new mysqli(
            $GLOBALS['host'],
            $GLOBALS['user'],
            $GLOBALS['pass'],
            $GLOBALS['database']
        );
    }
}

现在,我只想创建一个 class 来创建 mysqli 连接。如果我将代码复制到我的主脚本并 运行 它,它就可以工作。但是,在 class 中它没有。

谁能告诉我为什么?

编辑

我也试过这个,还有一些变化:

MysqliDatabase

class MysqliDatabase extends AbstractDB {

    public $db;

    public function __construct()
    {

        $db = new mysqli(
            $GLOBALS['host'],
            $GLOBALS['user'],
            $GLOBALS['pass'],
            $GLOBALS['database']
        );
        $this->db = $db;

        return $this->db;
    }
}

classMysqliDatabase不扩展mysqlclass。一种解决方案是直接扩展 mysql class 并通过接口添加任何 AbstractDB 方法。另一种是使用 factory pattern

class 构造函数只能 return class 的实例(除非使用 javascript严格意义上的面向对象)