这是一个基础网站。根据这里的答案,我正在做以下操作:
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();
编辑:将变量设置为静态并不能解决问题。访问未声明的静态属性
。我仍然需要在静态函数内分配变量。问题是询问是否有一种方法可以避免这种情况。
我的DB类(虽然和本讨论无关):
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;
}
}
someFunction
中直接使用$this->db
?你在构造函数中设置它的原因是什么? - DaOgre