Lokální proměnné v PHP

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() {
    $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($x) {
    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($x, $y) {
    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 podniká jako fullstack senior developer v Praze. Za svůj život napsal stovky středních i velkých webů, fungujících dodnes. Během spolupráce nabral hluboké zkušenosti, které na tomto webu předává dál.

Rád vám pomůžu:

Potřebuji poradit Chci konzultaci nebo službu Hledám práci

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 přes Skype.

Napište mi, pokud si nevíte rady.

Lektor: Jan Barášek

Pomohl Vám tento článek?

Druhy proměnných: