我正在学习有关mvc的课程教程,遇到了我似乎看不懂的代码。这是讲师推荐的课程,用于解决仅在需要时连接数据库的问题。
abstract class Model
{
protected static function getDb(){
static $dbh = null;
if ($dbh === null) {
//echo 'Connection to database is being established FIRST time';
try {
$dbh = new PDO(Config::DB_DSN, Config::DB_USER, Config::DB_PASS, Config::DB_PARAMS);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
return $dbh;
}
}
我不明白的是,每当我在开始时调用此函数时,静态$ dbh会更改为null,然后再次需要建立新的pdo连接(try / catch)。对我来说,这似乎无法解决建立连接变量($ dbh)的问题,因此我可以重复使用它。 我不确定我是否应该做其他事情(例如在函数外部声明“ static $ dbh = null”),因为作为专业人士生成的代码,它应该是正确的。