我有一个生成数据库访问的“主类”。就像是:
class ObjetBd extends Objet
{
protected $bd;
public function __construct()
{
parent::__construct();
$this->bd = new BD();
$this->bd->connect();
}
}
这对我来说是“干净”的代码(为了简洁起见,我删除了评论)。
现在我的问题是$this->bd
为每个对象生成的。
我想知道静态对象是否生成+初始化一次。
我想调用一次并且只使用一个连接,而不使用直接调用静态方法(即像以前一样connect()
继续使用)$this->bd
如果是这样,您能否说一下以下代码是否可以完美运行,以及是否应该使用更少的资源:
class ObjetBd extends Objet
{
static private $bd_static;
protected $bd;
public function __construct()
{
parent::__construct();
if (!isset(self::$bd_static)) {
self::$bd_static = new BD();
self::$bd_static->connect();
}
$this->bd = self::$bd_static;
}
}