Globale variabler er tilgængelige når som helst i enhver del af programmet og behøver ikke at blive overgivet.
Advarsel: Et godt designet program bør ikke bruge globale variabler, da de overtræder indkapslingsprincippet og kan forårsage fejl, der er svære at opdage, hvis de håndteres uhensigtsmæssigt.
Eksempel på anvendelse:
$a = 1;$b = 2;function suma(): void{global $a, $b;$b = $a + $b;}suma();echo $b; // udskriver tallet 3, fordi variablen $b er global
Bemærk, at vi har fået variablerne $a
og $b
uden for deres naturlige sammenhæng. Denne opførsel kaldes "magisk", fordi hvis en anden funktion tilsidesætter de variabler, der er i brug, vil programmet opleve en uventet tilstand.
Hvis det er korrekt, skal programmet indkapsle og videregive variablerne hver gang:
$a = 1;$b = 2;function suma(int $a, int $b): int{return $a + $b;}echo suma($a, $b); // udskriver 3
Takket være dette kan vi kalde funktionen dynamisk med forskellige inputparametre, og dens output vil kun afhænge af inputparametrene og ikke af omgivelserne.
Måske er den eneste fornuftige anvendelse af globale variabler i analysering af brugerinput, og i så fald taler vi om superglobale variabler.
I dette tilfælde er det et rent design, fordi variablen skal være skrivebeskyttet og ikke skrivebeskyttet, og desuden er den den samme i hele programmet:
function getNameFromUrl(): string{return isset($_GET['navn'])? htmlspecialchars($_GET['navn']): '';}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: ... | da