Sobes.tech
Junior — Middle

Quelle est la différence entre l'envoi de données par lien et par valeur, et comment cela influence-t-il la modification des données dans le programme?

sobes.tech IA

Réponse de l'IA

L’envoi de données par valeur signifie que, lors du passage d’une variable à une fonction, une copie de celle-ci est créée. Les modifications à l’intérieur de la fonction n’affectent pas l’original. En PHP, cela concerne typiquement les types scalaires (int, string, bool) et les tableaux (jusqu’à PHP 7, avec copie lors de l’écriture).

L’envoi par référence signifie que la fonction reçoit une référence aux données originales, et toute modification à l’intérieur de la fonction se reflète sur la variable d’origine. En PHP, cela se réalise avec le symbole esperluette (&) avant le paramètre.

Exemple :

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

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

$a = 5;
addOneByValue($a); // $a restera 5
addOneByReference($a); // $a deviendra 6

Ainsi, l’envoi par référence permet à la fonction de modifier les données passées, alors que par valeur, non.