作为参考,我有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;
}
}
答案 0 :(得分:1)
课程MysqliDatabase
不会扩展 mysql
课程。一种解决方案是直接扩展mysql
类,并通过接口添加任何AbstractDB
方法。另一种方法是使用factory pattern
类构造函数只能返回类的实例(除非在严格意义上使用非面向对象的javascript)