【发布时间】:2014-06-11 14:18:45
【问题描述】:
我有一个通过 PDO 连接到数据库的 try catch 块。我希望能够在我的所有函数中引用它,而不必将它作为参数传递。我该怎么做?提到的代码是:
try {
$database = new PDO('mysql:host=127.0.0.1;dbname=coop1','root','');
$database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e) {
echo $e->getmessage();
die();
}
编辑:
我创建了一个单例类(下面的尝试),它在 _construct 上执行 try catch 块
final class database {
private static $instance = NULL;
private function __construct() {
try {
$database = new PDO('mysql:host=127.0.0.1;dbname=coop1','root','');
$database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo $e->getmessage();
die();
}
}
public static function getInstance() {
static $instance = null;
if (self::$instance === NULL) {
$instance = new database();
}
return $instance;
}
}
【问题讨论】:
-
我不会推荐它,但是here
-
我不会做一个全球性的。类是可移植的代码单元。如果您在没有外部设置这些全局设置的情况下使用该类会发生什么?