这是一个基本的网站.根据这里的答案,我这样做:
private $db;
public function __construct($id = null) {
$this->db = Db::getInstance(); //singleton from the Db class
但是如果有静态方法,我就不能使用特定于对象的变量.
有什么比在静态方法中手动指定db变量更好的了吗?
public static function someFunction($theID){
$db = Db::getInstance();
编辑:使变量静态不能解决问题.访问未声明的静态属性.我仍然需要在静态函数中分配变量.问题是询问是否有解决方法.
我的数据库类(虽然对此讨论不重要):
class Db {
private static $m_pInstance;
private function __construct() { ... }
public static function getInstance(){
if (!self::$m_pInstance)
self::$m_pInstance = new Db();
return self::$m_pInstance;
}
}