Lokální proměnné mají platnost jen uvnitř těla **funkce** nebo **metody** (v objektovém programování).
Pokud pracujeme v kontextu běžného scriptu, tak se vše děje dle očekávání:
$x = 5;echo $x; // vypíše 5
Když ale definujeme vlastní funkci, tak se chování lehce změní:
$x = 5;function mojeFunkce(): int{$x = 3;echo $x; // vypíše 3}echo $x; // vypíše 5
Důvod je ten, že proměnná $x existuje jen v kontextu aktuální funkce nebo metody. Toto chování je záměrné.
Pokud chceme do funkce předat hodnotu z okolního kódu, tak ji musíme zavolat s potřebnými parametry:
echo mojeFunkce(5); // vypíše 6function mojeFunkce(int $x): int{return $x + 1;}
Hodnoty se do funkcí dostávají za pomoci parametrů. Pokud chcete do funkce přenést další proměnné nad rámec parametrů, můžete použít globální proměnné, ale není to dobrý nápad.
Použití lokálních proměnných má obrovský význam při programování větší aplikace. Pokud bychom nerozlišovali platnosti proměnných v rámci různých kontextů, tak by nebylo možné zaručit, že se proměnná nepřepíše na místě, kde s tím nepočítáme (proto jsou globální proměnné zlo).
$x = 5;$y = 3;function soucet(int $x, int $y): int{return $x + $y;}echo $x; // vypíše 5echo soucet($x, $y); // vypíše 8
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:
Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo online.
Napište mi, pokud si nevíte rady.
Lektor: Jan Barášek
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | cs