Files

1.0 KiB

Referencje

Domyślnym zachowaniem funkcji jest skopiowanie wartości argumentu do nowej zmiennej uzywanej w funkcji.

$zmienna = "wartosc1";

function test($argument) {  // argument przekazany funkcji
    $argument = "wartosc2"; // zmieniamy wartość argumentu w funkcji
    echo $argument;         // wypisze się "wartosc2"
}

test($zmienna);
echo $zmienna; // ALE! Jako że zmieniliśmy argument w funkcji, mimo że pochodzi on od zmiennej $zmienna, oryginalna zmienna pozostaje taka sama. Wypisane zostanie "wartosc1"

Możemy jednak zamiast tego przekazać do funkcji jedynie WSKAZANIE, gdzie znajduje się oryginalna zmienna. Wtedy wartość nie jest kopiowana i pracujemy na oryginale.

$zmienna = "wartosc1";

function test(&$argument) { // odniesienie do argumentu przekazane funkcji
    $argument = "wartosc2"; // zmieniamy wartość argumentu, a co za tym idzie wartość oryginalnej zmiennej
    echo $argument;         // wypisze się "wartosc2"
}

test($zmienna);
echo $zmienna; // tutaj też "wartosc2"