(PHP)Singleton数据库类 – 静态方法怎么样?
发布时间:2020-12-13 21:44:49 所属栏目:PHP教程 来源:网络整理
导读:这是一个基本的网站.根据这里的答案,我这样做: private $db;public function __construct($id = null) { $this-db = Db::getInstance(); //singleton from the Db class 但是如果有静态方法,我就不能使用特定于对象的变量. 有什么比在静态方法中手动指定db
这是一个基本的网站.根据这里的答案,我这样做:
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; } } 解决方法
是的,你可以使$db静态:
static private $db; 我假设这是你需要的,因为你是从静态方法访问它.如果有任何理由你不想要这个,那必然意味着该方法可能不应该是静态的. 编辑: 根据@zerkms(谢谢)注释,您可以使用self :::访问静态变量 self::$db = Db::getInstance(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |