我为 PDO 创建了一个单例模式,问题是当我使用它时,我有一个无限循环,例如,这样做:
$db=Db::fetch_instance();
$product = $db->query(<query>);
我有这个错误:
Fatal error: Maximum function nesting level of '100' reached, aborting!
我的课是这个:
class Db {
//START OF SINGLETON PATTERN
private static $PDOInstance;
public static function fetch_instance() {
try {
if(empty(self::$PDOInstance)){
self::$PDOInstance = new Db();
}
return self::$PDOInstance;
} catch (Exception $e) {
<something>
}
}
private function __construct() {
return new PDO("something");
}
//START OF DECORATOR PATTERN
public function beginTransaction() {
.......
}
public function query($statement) {
return self::$PDOInstance->query($statement);
}
........
为什么这个循环?,我没有看到任何循环。