Maison >développement back-end >tutoriel php >Explication détaillée de la façon d'utiliser le symbole de référence (&) en PHP
La référence en PHP est d'ajouter le symbole & devant la variable, la fonction, l'objet, etc. La référence en PHP signifie : des noms différents accèdent au même contenu de variable.
est différent des pointeurs en langage C. Le pointeur en langage C stocke une référence à la variable d'adresse où le contenu de la variable est stocké en mémoire
La référence PHP vous permet d'utiliser deux variables pour pointer vers le même contenu
$a="ABC"; $b =&$a; echo $a;//这里输出:ABC echo $b;//这里输出:ABC $b="EFG"; echo $a;//这里$a的值变为EFG 所以输出EFG echo $b;//这里输出EFG
Fonction. Appel par adresse
Je n'entrerai pas dans les détails de l'appel par adresse. Le code sera donné directement ci-dessous
function test(&$a) { $a=$a+100; } $b=1; echo $b;//输出1 test($b); //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了 echo "<br>"; echo $b;//输出101
A noter que si vous testez ici, un; Une erreur se produira. Vous pouvez penser à la raison vous-même.
Retour de référence de fonction
Regardez d'abord le code
function &test() { static $b=0;//申明一个静态变量 $b=$b+1; echo $b; return $b; } $a=test();//这条语句会输出 $b的值 为1 $a=5; $a=test();//这条语句会输出 $b的值 为2 $a=&test();//这条语句会输出 $b的值 为3 $a=5; $a=test();//这条语句会输出 $b的值 为6
Explication ci-dessous :
Ce que $a=test(); de cette façon, ce n'est pas réellement un retour de référence de fonction.Il n'y a aucune différence avec les appels de fonction ordinaires. Quant à la raison : c'est la réglementation de PHP
PHP stipule que le retour de référence de la fonction est obtenu via $a=. &test();
Quant à ce qu'est un retour de référence (manuel PHP) Il a dit : Le retour de référence est utilisé lorsque vous souhaitez utiliser une fonction pour trouver à quelle variable la référence doit être liée.) Cette absurdité m'a rendu incapable de comprendre. cela depuis longtemps
En utilisant l'exemple ci-dessus pour l'expliquer, c'est
$a= L'appel d'une fonction dans la méthode test() attribue uniquement la valeur de la fonction à $a, et toute modification dans $a le sera. n'affecte pas $b dans la fonction
. Mais en appelant la fonction dans la méthode $a=&test(), sa fonction est de pointer l'adresse mémoire de la variable $b en retour $b et l'adresse mémoire du $a. variable au même endroit
, ce qui produit l'équivalent de cet effet ($a=&b;) Donc changez $a La valeur change également la valeur de $b, donc après avoir exécuté
$a=&test();
$a=5;
, la valeur de $b devient 5.
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!