Maison  >  Article  >  développement back-end  >  Comment passer une référence en php

Comment passer une référence en php

PHPz
PHPzoriginal
2023-05-07 10:02:07706parcourir

En PHP, il existe deux manières de passer des paramètres : le passage par valeur et le passage par référence. Le passage par valeur est la méthode par défaut, ce qui signifie que les modifications apportées aux paramètres au sein d'une fonction n'affectent pas les variables en dehors de la fonction. Le passage par référence transmettra l'adresse de la variable à la fonction, de sorte que les modifications des paramètres affecteront les variables de la fonction appelante.

En PHP, utilisez le symbole & pour représenter les références de passage. Voici un exemple de code pour illustrer l'utilisation du passage par référence :

function addOne(&$num) {
  $num++;
}

$num = 10;
addOne($num);
echo $num; // 输出 11

Dans le code ci-dessus, la fonction addOne utilise le & symbole pour référence Son paramètre est $num, c'est-à-dire que toute modification de $num affectera la variable appelant la fonction. Dans la fonction, nous avons ajouté 1 à $num Après avoir appelé la fonction, la valeur de la variable d'origine $num a également été modifiée. addOne 使用了 & 符号来引用其参数 $num,也就是说,对 $num 的任何变化都会影响到调用该函数的变量。在函数中,我们将 $num 加上了 1,调用函数后,原始的变量 $num 的值也被修改了。

再看一下下面的代码:

function swap(&$a, &$b) {
  $tmp = $a;
  $a = $b;
  $b = $tmp;
}

$a = 1;
$b = 2;
swap($a, $b);
echo $a; // 输出 2
echo $b; // 输出 1

这个例子展示了使用传递引用来完成交换两个变量的值。函数 swap 接收两个参数 $a$b 并且都是按引用传递。在函数内部,我们将 $a 的值保存在 $tmp 中,然后将 $a 的值设置为 $b,将 $b 的值设置为 $tmp。调用 swap 函数后,原始的变量 $a$b 的值被交换了。

除了显式地声明参数时使用 & 符号,还可以用 &$var 的方式返回函数的结果:

function &getRef() {
  $num = 10;
  return $num;
}

$numRef = &getRef();
$numRef = 20;
echo getRef(); // 输出 20

这个例子展示了如何返回变量的引用。函数 getRef 返回一个 $num 变量的引用,可以看到,在调用 getRef 函数后,我们将引用赋给了 $numRef 变量,并且修改了 $numRef 的值。这样会导致原始的 $num

Regardez à nouveau le code suivant :

rrreee

Cet exemple montre l'utilisation de références de passage pour compléter l'échange des valeurs​​de deux variables. La fonction swap reçoit deux paramètres $a et $b et les deux sont passés par référence. À l'intérieur de la fonction, nous enregistrons la valeur de $a dans $tmp, puis définissons la valeur de $a sur $b , définissez la valeur de <code>$b sur $tmp. Après avoir appelé la fonction swap, les valeurs des variables d'origine $a et $b sont échangées. #🎜🎜##🎜🎜#En plus d'utiliser le symbole &amp; lors de la déclaration explicite de paramètres, vous pouvez également utiliser &amp;$var pour renvoyer le résultat d'une fonction : #🎜🎜#rrreee#🎜🎜 #Cet exemple montre comment renvoyer une référence à une variable. La fonction getRef renvoie une référence à la variable $num. Vous pouvez voir qu'après avoir appelé la fonction getRef, nous attribuons la référence à variable $numRef</code.>, et la valeur de $numRef est modifiée. Cela entraînera également la modification de la valeur de la variable $num d'origine. #🎜🎜##🎜🎜#Il convient de noter qu'il faut être prudent lors de l'utilisation du transfert de référence, car la valeur de la variable peut être modifiée par un autre code, affectant ainsi la lisibilité et la maintenabilité du programme. Par conséquent, il est recommandé d’utiliser le passage par référence uniquement lorsque cela est nécessaire. #🎜🎜#

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!

Déclaration:
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
Article précédent:Session de compensation en phpArticle suivant:Session de compensation en php