我的自定义MysqliDatabase类不返回mysqli的实例

时间:2015-04-20 18:46:11

标签: php mysql oop mysqli

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

  • DBFactory
  • AbstractDB
  • DBIntreface
  • MysqliDatabase

据我所知,问题仅在于MysqliDatabase

class MysqliDatabase extends AbstractDB {

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

现在,我想做的就是创建一个创建mysqli连接的类。如果我将代码复制到我的主脚本并运行它,它就可以了。但是,在课堂上却没有。

有人可以告诉我为什么吗?

修改

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

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;
    }
}

1 个答案:

答案 0 :(得分:1)

课程MysqliDatabase 不会扩展 mysql课程。一种解决方案是直接扩展mysql类,并通过接口添加任何AbstractDB方法。另一种方法是使用factory pattern

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

相关问题