我正在学习 OOP PHP 并且遇到了这个问题:
//Store the single instance
private static $_instance;
/*
Get an instance of the database
@return database
*/
public static function getInstance () {
if (!self::$_instance) {
self::$_instance = new self();
}
return self::$_instance;
}
将 $_instance
设置为新的 self()
有什么意义?我知道这条线所做的就是创建它所在类的一个新实例,但为什么需要这样做呢?有什么理由需要这个吗?我什至不会在类里面再次调用它。感谢您在高级方面的任何帮助。
最佳答案
这个想法是,每当您在整个代码中调用 getInstance() 时,您总是会得到相同的实例。
这在您只想访问同一个对象的某些情况下很有用。通常,像这样的对象可能有一个私有(private)构造函数,它有效地强制你总是作用于同一个实例(也称为单例)。
通常人们会说“单例是邪恶的”。最好避免使用它们,因为它们会导致主要的设计问题。但在某些情况下,它们仍然是一个好主意。
关于php - 使用 self::$_instance = new self() 有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376762/