考虑下面的代码,我一直认为Lynda.com 创建一个这样的数据库类,我的问题是为什么不创建 一个数据库的静态方法,而不是存储 实例变成静态属性?静态方法vs静态实例
<?php
class Database {
private $conn;
private static $init;
public function __construct() {
$this->conn = new mysqli('localhost','root','root','mydb');
}
public static function getInstance() {
self::$init = new self();
return self::$init;
}
}
$db = Database::getInstance();
?>
无论如何,它们都不好,因为它们会创建全局状态和隐式依赖关系,所以不要这样做。 – ChocoDeveloper
该代码缺少'getInstance'上的'static'说明符。这被称为[单例模式](http://stackoverflow.com/questions/4595964/who-needs-singletons)。 – DCoder
你确定*这是你的老师怎么说的吗?我闻到重要的细节缺失。 – goat