我有一个类,它在它的\uu construct()函数中打开一个数据库连接,并让其他类重写这个方法。
class db {
__construct() {
$this->db = new mysqli();
}
}
然后
class theme extends db {
__construct() {
parent::__construct();
$doing_more_stuff;
}
}
我的问题是当构造器已经打开了一个数据库连接,我让我的主题类重写这个构造器(仅仅因为我在主题中需要一个自构造器)数据库连接会被打开两次吗?
我考虑在我的db类中构建一个控制函数,该函数看起来是否已经有如下连接:
__construct() {
if($no_connection) { $open_connection; } else { $use_opened_connection; }
}
那么,这是好的做法还是至少可以?
谢谢
编辑:对不起,昨天我又问了一个问题,因为它在缓存中,所以题目改了。
2条答案
按热度按时间wh6knrhe1#
可以使用静态成员来避免多个连接。
像这样:
50few1ms2#
不,它不会执行两次。在
new theme
.theme::__construct
而且只有theme::__construct
执行,因为它覆盖db::__construct
. 在该函数中,显式调用parent::__construct
一次,执行db::__construct
一次。通过添加
echo
语句…