Wie @HouseInTheForest weist darauf hin, ist dies eine klassische Funktion ein Singleton-Objekt zu erhalten.
Sie verwenden ein Singleton, wenn nur eine Instanz dieses Objekts in Ihrem Code vorhanden sein soll, unabhängig davon, wo Sie es aufrufen. Daher speichern Sie die Instanz des Objekts im Objekt selbst und geben das Objekt auf Anforderung zurück. Das Singleton wird hauptsächlich für Datenbankverbindungen verwendet (Sie möchten bei jeder Abfrage keine neue Verbindung erstellen) und Protokollklassen (Sie möchten eine Protokollklasse, die alle Informationen enthält.
Unten einige Kommentare zu was der Code tut
// Method to get the instance of the singleton object, by calling this method statically. thus: $oDB = Database::getInstance();
public static function getInstance()
{
// static variable to hold the instance of the object in
static $Instances = array();
// I guess this line holds the host:user:password:database to connect to the database server (mostly MySql)
$key = "localhost:iotatut:XXXXXXXX:DATABASE";
// If an instance with this key combination does not exist, setup a new Database object to hold the information
if(!isset($Instances[$key])){
$Instances[$key] = new Database();
}
// Return the instance to the Database object.
return $Instances[$key];
}
. Hinweis:. in Ihrem Kommentar, den Sie sich beziehen auf mysqli Ab PHP 7 mysql
entfernt ist und Sie PHP mysqli verwenden die ganze Klasse muss aktualisiert werden, dass bedeutet, jede Zeile mit mysql_XXXX (z. B. mysql_connect
, mysql_query
usw.) muss auf mysqli_connect
, mysqli_query
usw. aktualisiert werden. Darüber hinaus müssen Sie die Verbindung mit jedem c bereitstellen alles ... Wenn Sie nicht wissen, was Sie tun, fragen Sie einen Programmierer.
Was ist der Fehler, den Sie bekommen? – mindaJalaj
@harvider ist dies der genaue Code oder haben Sie gerade die gewünschten Bits ausgewählt? –