Maison  >  Article  >  développement back-end  >  A quoi sert l'esperluette avant la fonction php ?

A quoi sert l'esperluette avant la fonction php ?

巴扎黑
巴扎黑original
2017-08-05 09:58:301480parcourir

Cet article présente principalement la décomposition de l'esperluette avant la fonction en php. Sa fonction est appelée retour de référence, ce qui est un peu abstrait. Veuillez consulter le contenu de cet article pour une explication détaillée. 🎜>

php Inutile de dire, que signifie ajouter un symbole & devant une variable ? Cela signifie que deux variables pointent vers la même adresse en même temps. ajouter un symbole & devant une fonction php ? Vous trouverez ci-dessous deux codes de démonstration, puis des explications.


function &chhua() 
{ 
static $b="www.jb51.net";//申明一个静态变量 
$b=$b."WEB开发"; 
echo $b; 
return $b; 
} 
 
$a=chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发” 
$a="PHP"; 
echo "<Br>";
$a=chhua();//这条语 句会输出 $b的值 为“www.jb51.netWEB开发WEB开发”  
echo "<Br>";
$a=&chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发WEB开发WEB开发” 
echo "<Br>";
$a="JS"; 
$a=chhua(); //这条语句会输出 $b的值 为"JSWEB开发"
 
 
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
Expliquons la deuxième fonction.

Ce que vous obtenez de cette façon $a=test(); n'est pas réellement un retour de référence de la fonction.

Quant à la raison : c'est la raison. régulation de PHP

php Il est stipulé que ce qui est obtenu via $a=&test(); est le retour de référence de la fonction.

Quant à ce qu'est un retour de référence (le manuel PHP dit : Référence return est utilisé lorsque vous souhaitez utiliser une fonction pour trouver une référence qui doit être liée Lorsqu'elle est déterminée sur quelle variable. )

En utilisant l'exemple ci-dessus pour expliquer, en appelant la fonction à la manière de

$a=test() attribue simplement la valeur de la fonction à $a, et $a le fait. Tout changement n'affectera pas $b dans la fonction.
Lors de l'appel de la fonction via $a=&test(), sa fonction est pour comparer l'adresse mémoire de la variable $b en retour $b avec la variable $a,
pointe vers le même endroit. ). Ainsi, changer la valeur de $a change également la valeur de $b, donc après avoir exécuté :
$a=&test(); $a=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!

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