PHP Manual
/
Proměnné

Lokální proměnné v PHP

22. 08. 2019

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 6
function 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 5
echo 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:

Související články

1.
2.

Potřebujete poradit s PHP?

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

Status:
All systems normal.
2024