Transfert de valeur : dans le cadre de la fonction, la modification de la valeur de la variable n'affectera pas la valeur de la variable en dehors de la fonction.
Passage par référence : Dans le cadre d'une fonction, toute modification de la valeur est également reflétée en dehors de la fonction, car le passage par référence transmet l'adresse mémoire.
Tapez deux morceaux de code et vous pourrez voir la différence entre les deux. Voyons l'essence à travers le phénomène
function sum($a){ $a++; $b = $a; return $b; } $a = 10; echo sum($a).'<br />';//11 echo $a;//10
La différence entre les deux morceaux de code réside dans les paramètres de la fonction. sum. L'une consiste à transmettre la valeur $ a et l'autre à transmettre la référence &$a. Le résultat est que la valeur de $a ne change pas après avoir transmis la valeur. Au contraire, la valeur de $a change après le passage. la référence. Les enfants qui ont appris le langage C ici comprendront ce qui se passe. Ce qui est poussé sur la pile est une copie de la référence.
Puisque la référence pointe vers une certaine variable, l'opération sur la référence est en fait l'opération sur la variable vers laquelle elle pointe. (La fonction revient à passer un pointeur, sauf qu'il n'est pas nécessaire de déréférencer) & est un symbole pointant vers l'adresse d'une variable. Le paramètre formel &$a dans la somme de la fonction est en fait le paramètre réel $a, alors passez-le dans sum et effectuez un + Après l'opération +, la valeur du paramètre réel $a change réellement, c'est tout.
Explication :
La valeur du paramètre d'origine dans le passage par valeur reste la valeur d'origine après l'appel d'autres fonctions, tandis que le passage par référence modifie la valeur d'origine. Lors de la transmission de valeurs selon la méthode de transmission par valeur, si la valeur d'origine doit être modifiée, le code doit être copié. Si la valeur est suffisamment grande ou s'il s'agit d'une grande chaîne de chaînes, le code sera plus. et plus répétitif, en passant par référence, il n'est pas nécessaire de copier le code PHP, ce qui présente un grand avantage dans l'amélioration des performances.
Pour plus de connaissances sur PHP, veuillez visiter le site Web chinois de php !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!