考慮下面的代碼,我一直認爲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