Cet article vous amènera à comprendre les références de PHP et à présenter en détail le passage de références et le retour de références des fonctions. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Référence PHP (c'est-à-dire ajouter une esperluette devant une variable, une fonction, un objet, etc.)
est cité en PHP Signification : différents noms accèdent au même contenu de variable.
est différent des pointeurs en langage C. Le pointeur en langage C stocke le contenu de la variable et l'adresse stockée en mémoire.
1. Référence de variable
La référence PHP vous permet d'utiliser deux variables pour pointer vers le même contenu
<?php $a = 'abc'; $b = &$a; var_dump($a,$b);//均为'abc' $b = 123; var_dump($a,$b);//均为123
2. par référence (appel par adresse)
<?php function test(&$a){ $a = $a + 100; } $b = 1; test($b); var_dump($b);//101
Ce que $b transmet à la fonction est en fait l'adresse mémoire où se trouve le contenu de la variable de $b. Elle peut être modifiée en modifiant la valeur de $a. dans la fonction. La valeur de $b
Remarque :
N'ajoutez pas le symbole & devant $b dans le "test($" ci-dessus. b);", mais dans la fonction In "call_user_func_array", si vous souhaitez passer des paramètres par référence, vous avez besoin du symbole &
<?php function test(&$a){ $a = $a + 10; } $b = 1; call_user_func_array('test',array(&$b)); var_dump($b);//11
3. La référence de la fonction renvoie
🎜>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
class talker{ private $data = 'Hi'; public function &get(){ return $this->data; } public function out(){ echo $this->data; } } $aa = new talker(); $d = &$aa->get(); $aa->out(); $d = 'How'; $aa->out(); $d = 'Are'; $aa->out(); $d = 'You'; $aa->out(); //输出为HiHowAreYou
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!