/
Variabler

Globala variabler i PHP

22. 08. 2019

Globala variabler är tillgängliga när som helst i alla delar av programmet och behöver inte överföras.

Varning: Ett väldesignat program bör inte använda globala variabler eftersom de bryter mot inkapslingsprincipen och kan orsaka svårdetekterade fel om de hanteras slarvigt.

Exempel på användning:

$a = 1;
$b = 2;
function suma(): void
{
global $a, $b;
$b = $a + $b;
}
suma();
echo $b; // skriver ut siffran 3 eftersom variabeln $b är global

Observera att vi har fått variablerna $a och $b utanför deras naturliga sammanhang. Detta beteende kallas "magiskt" eftersom om en annan funktion åsidosätter de variabler som används för tillfället kommer programmet att uppleva ett oväntat tillstånd.

På rätt sätt ska programmet inkapsla och överföra variablerna varje gång:

$a = 1;
$b = 2;
function suma(int $a, int $b): int
{
return $a + $b;
}
echo suma($a, $b); // skriver ut 3

Tack vare detta kan vi anropa funktionen dynamiskt med olika ingångsparametrar och dess resultat beror endast på ingångarna, inte på miljön.

Hämta inmatningsparametrar från URL

Kanske är den enda rimliga användningen av globala variabler att analysera användarinmatning, och i så fall talar vi om superglobala variabler.

I det här fallet är det en ren design eftersom variabeln ska vara skrivskyddad, inte skrivskyddad, och dessutom är den densamma i hela programmet:

function getNameFromUrl(): string
{
return isset($_GET['namn'])
? htmlspecialchars($_GET['namn'])
: '';
}
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:

Související články

1.
4.