Statische Funktionen und Variablen werden verwendet, um auf Variablen / Funktionen in einem globalen Bereich wie folgt zuzugreifen:
echo myClass::myVariable;
echo myClass::myFunction();
Wenn etwas statisch ist, kann überall darauf zugegriffen werden, und es ist einer Funktion vom Typ Prozedur sehr ähnlich, außer dass es self verwenden kann und im Klassenbereich enthalten ist.
class myClass{
static $myVariable = "myVar";
static function myFunction()
{
return "myFunc";
}
}
Eine Möglichkeit, dies zu verwenden, besteht darin, nur eine Instanz einer Klasse oder eine Singleton-Methode beizubehalten.
class myClass
{
static $class = false;
static function get_connection()
{
if(self::$class == false)
{
self::$class = new myClass;
}
else
{
return self::$class;
}
}
private function __construct()
{
}
}
Da es einen privaten Konstruktor hat, kann es nicht mit dem new
Operator instanziiert werden, sodass Sie gezwungen sind, aufzurufen myClass::get_connection()
, um eine Klasse abzurufen. Diese Funktion kann die neue Klasse erstellen (da sie Mitglied der Klasse ist). Anschließend wird die Klasse in einer statischen Variablen gespeichert. Wenn Sie die Funktion erneut aufrufen, wird einfach die erstellte Klasse zurückgegeben.
Am Ende wird das statische Schlüsselwort verwendet, um die Dinge in Bezug auf den Bereich statisch zu halten. Dies bedeutet, dass Sie aufgrund des aktuellen Bereichs keine Änderungen vornehmen möchten. Während die Singleton-Methode dies ein wenig ausdehnt, bleibt sie bei der gleichen Idee, dass Sie immer die gleiche Klasse haben, unabhängig davon, in welchem Bereich Sie sich befinden.
Operator für die Auflösung
statischer Schlüsselwörter in der PHP-Dokumentation
StackOverflow-Wissen
Vermeiden der Verwendung von globalen PHP-Objekten
Teilen von Variablen zwischen Funktionen in PHP ohne Verwendung von Globals Ermöglichen des
Zugriffs auf eine globale Variable für jede Funktion innerhalb einer Klasse
Global oder Singleton für Datenbankverbindungs-
PHP-Klassen: Wann wird :: vs. -> verwendet?