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
Sponzorované odkazy
Pomohl Vám tento článek?