我的自定义 MysqliDatabase class 不是 return mysqli 的实例
My Custom MysqliDatabase class doesn't return an instance of mysqli
作为参考,我有3个classes +接口:
DBFactory
AbstractDB
DBIntreface
MysqliDatabase
据我所知,问题出在 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
不扩展mysql
class。一种解决方案是直接扩展 mysql
class 并通过接口添加任何 AbstractDB
方法。另一种是使用 factory pattern
class 构造函数只能 return class 的实例(除非使用 javascript严格意义上的面向对象)
作为参考,我有3个classes +接口:
DBFactory
AbstractDB
DBIntreface
MysqliDatabase
据我所知,问题出在 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
不扩展mysql
class。一种解决方案是直接扩展 mysql
class 并通过接口添加任何 AbstractDB
方法。另一种是使用 factory pattern
class 构造函数只能 return class 的实例(除非使用 javascript严格意义上的面向对象)