PHP Manual
/
Zmienne

Zmienne globalne w PHP

22. 08. 2019

Zmienne globalne są dostępne w dowolnym momencie w dowolnej części aplikacji i nie trzeba ich przekazywać.

Ostrzeżenie: Dobrze zaprojektowana aplikacja nie powinna używać zmiennych globalnych, ponieważ naruszają one zasadę hermetyzacji i mogą powodować trudne do wykrycia błędy, jeśli są obsługiwane nieostrożnie.

Przykładowe zastosowanie:

$a = 1;
$b = 2;
function suma(): void
{
global $a, $b;
$b = $a + $b;
}
suma();
echo $b; // wypisuje liczbę 3, ponieważ zmienna $b jest globalna

Zwróćmy uwagę, że zmienne $a i $b otrzymaliśmy poza ich naturalnym kontekstem. Takie zachowanie jest określane mianem "magii", ponieważ jeśli inna funkcja zastąpi aktualnie używane zmienne, w aplikacji wystąpi nieoczekiwany stan.

Prawidłowo aplikacja powinna za każdym razem kapsułkować i przekazywać zmienne:

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

Dzięki temu możemy dynamicznie wywoływać funkcję z różnymi parametrami wejściowymi, a jej wynik będzie zależał tylko od danych wejściowych, a nie od otoczenia.

Pobieranie parametrów wejściowych z adresu URL

Być może jedynym sensownym zastosowaniem zmiennych globalnych jest parsowanie danych wejściowych użytkownika, w którym to przypadku mówimy o zmiennych globalnych.

W tym przypadku jest to czysty projekt, ponieważ zmienna powinna być tylko do odczytu, a nie tylko do zapisu, a ponadto jest taka sama w całej aplikacji:

function getNameFromUrl(): string
{
return isset($_GET['nazwa'])
? htmlspecialchars($_GET['nazwa'])
: '';
}
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.
Status:
All systems normal.
2024