Globale Variablen sind jederzeit in jedem Teil der Anwendung verfügbar und müssen nicht übergeben werden.
Warnung: Eine gut konzipierte Anwendung sollte keine globalen Variablen verwenden, da sie das Kapselungsprinzip verletzen und bei unvorsichtiger Handhabung schwer zu entdeckende Fehler verursachen können.
Beispiel für die Verwendung:
$a = 1;$b = 2;function suma(): void{global $a, $b;$b = $a + $b;}suma();echo $b; // gibt die Zahl 3 aus, da die Variable $b global ist
Man beachte, dass wir die Variablen $a
und $b
außerhalb ihres natürlichen Kontextes erhalten haben. Dieses Verhalten wird als "magisch" bezeichnet, denn wenn eine andere Funktion die derzeit verwendeten Variablen überschreibt, tritt in der Anwendung ein unerwarteter Zustand ein.
Korrekterweise sollte die Anwendung die Variablen einkapseln und jedes Mal übergeben:
$a = 1;$b = 2;function suma(int $a, int $b): int{return $a + $b;}echo suma($a, $b); // druckt 3
Dadurch können wir die Funktion dynamisch mit verschiedenen Eingabeparametern aufrufen, und ihre Ausgabe hängt nur von den Eingaben und nicht von der Umgebung ab.
Die einzige sinnvolle Verwendung globaler Variablen ist vielleicht das Parsen von Benutzereingaben. In diesem Fall sprechen wir von superglobalen Variablen.
In diesem Fall handelt es sich um ein sauberes Design, da die Variable nur lesbar und nicht schreibbar sein sollte und außerdem in der gesamten Anwendung gleich ist:
function getNameFromUrl(): string{return isset($_GET['Name'])? htmlspecialchars($_GET['Name']): '';}echo getNameFromUrl();
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | de