【发布时间】:2010-08-06 13:43:40
【问题描述】:
我曾经读到静态类非常困难,甚至无法调试。这是真的吗?为什么?
如果举个例子有帮助,这里有一个 PHP 类我用来访问数据库(不过我不认为这是一个特定于 PHP 的问题):
<?php
class DB
{
private static $instance;
private function __construct() { }
public static function getInstance()
{
if(!self::$instance)
{
self::$instance = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';', DB_USER, DB_PASS);
}
return self::$instance;
}
public static function getPreparedStatement($query)
{
$db = self::getInstance();
return $db->prepare($query);
}
public static function query($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
}
public static function getResult($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
return $stmt;
}
public static function getSingleRow($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
return $stmt->fetch();
}
public static function getMultipleRows($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
return $stmt->fetchAll();
}
}
?>
【问题讨论】:
-
希望你为战争做好准备......对静态类/方法有很多仇恨,当你提出单例时它会变得更糟......
-
没关系 :-) 我对这个主题很好奇,期待人们提供的答案。
标签: language-agnostic static static-classes