Wat is het verschil tussen gegevens verzenden via link en via waarde, en hoe beïnvloedt dit het wijzigen van gegevens binnen het programma?
sobes.tech AI
Antwoord van AI
Het verzenden van gegevens per waarde betekent dat er bij het doorgeven van een variabele aan een functie een kopie wordt gemaakt. Wijzigingen binnen de functie beïnvloeden het origineel niet. In PHP is dit typisch voor scalair types (int, string, bool) en arrays (tot PHP 7 met kopiëren bij schrijven).
Het verzenden per referentie betekent dat een verwijzing naar de originele gegevens wordt doorgegeven, en elke wijziging binnen de functie wordt weerspiegeld op de oorspronkelijke variabele. In PHP wordt dit gerealiseerd met het ampersand (&) voor de parameter.
Voorbeeld:
function addOneByValue($num) {
$num += 1;
}
function addOneByReference(&$num) {
$num += 1;
}
$a = 5;
addOneByValue($a); // $a blijft 5
addOneByReference($a); // $a wordt 6
Op deze manier stelt het doorgeven per referentie de functie in staat om de meegegeven gegevens te wijzigen, terwijl dat bij doorgeven per waarde niet het geval is.