Maison > développement back-end > Problème PHP > Quelle est la différence entre passer par valeur et passer par référence en php ?

Quelle est la différence entre passer par valeur et passer par référence en php ?

青灯夜游
Libérer: 2023-02-27 07:10:02
original
3197 Les gens l'ont consulté

Quelle est la différence entre passer par valeur et passer par référence en php ?

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).&#39;<br />&#39;;//11
echo $a;//10
Copier après la connexion
rrree

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal