Sobes.tech
Junior — Middle

Mi a különbség az adat küldése linken keresztül és értéken keresztül, és hogyan befolyásolja ez a programon belüli adatmódosítást?

sobes.tech MI

Válasz az MI-től

Az érték szerinti adatátvitel azt jelenti, hogy amikor egy változót átadunk egy függvénynek, akkor annak másolata jön létre. A függvényen belüli változtatások nem befolyásolják az eredetit. PHP-ben ez jellemző a skalár típusokra (int, string, bool) és tömbökre (PHP 7-ig másolással íráskor).

A hivatkozás szerinti átadás azt jelenti, hogy a függvény az eredeti adatokra mutató hivatkozást kap, és a függvényen belüli változtatások az eredeti változón is megjelennek. PHP-ben ezt az & szimbólummal lehet megvalósítani a paraméter előtt.

Példa:

function addOneByValue($num) {
    $num += 1;
}

function addOneByReference(&$num) {
    $num += 1;
}

$a = 5;
addOneByValue($a); // $a továbbra is 5
addOneByReference($a); // $a 6 lesz

Így a hivatkozás szerinti átadás lehetővé teszi, hogy a függvény módosítsa a kapott adatokat, míg az érték szerinti nem.