Passer par valeur
Toute modification de la valeur dans la portée de la fonction sera ignorée en dehors de la fonction. une copie de la valeur , deux variables pointent vers deux adresses mémoire.
$a = 6; $b = $a; // 这是值传递,把 $a 的值拷贝给了 $b,在内存中 $a 和 $b 不在一个地址中,更改任意变量的值对对方无影响 $b = 7; echo $a; // 输出:6 function foo($b){ echo ++$b; } foo($b); // 输出:8 echo $b; // 输出:7 说明函数内的改变对函数外的值没有影响,因为,当 $b 传入函数内的时候是值传递, 会把值在内存中拷贝一份存入一个新的内存地址中
Passez par référence
Toute modification de la valeur dans le cadre de la fonction reflétera également ces modifications en dehors de la fonction. transférer une variable L'identifiant de l'adresse mémoire est passé à une variable à l'intérieur et à l'extérieur, et les deux variables pointent finalement vers la même adresse mémoire.
$a = 6; $b = &$a; $b = 7; echo $a; // 输出:7 function foo(&$c){ echo ++$c; } foo($b); // 输出:8 echo $b; // 输出:8 说明函数内的改变对函数外的值有影响,因为,当 $b 传入函数内的时候是引用传递, 函数体内的$b和外部的$b实际上是指向同一个内存地址,所以一个改变,另外一个变量的值也会改变
L'exemple ci-dessus est évidemment transmis par référence. Pourquoi deux $arr affichent-ils des résultats différents ?
Comme il y a une opération d'étape $arr = &$arr['a'] après cette étape, l'adresse de pointage de $arr dans la fonction a changé, pointant vers $arr['a'], donc les résultats imprimé deux fois pas pareil.
Remarque : La valeur de passage par défaut pour les objets en PHP est généralement la valeur de passage. Elle est utilisée lorsque les paramètres entrants doivent être modifiés dans le corps de la fonction et lorsque. les variables externes doivent être affectées. Dans d'autres cas, les valeurs sont généralement transférées.
Tutoriel recommandé : Tutoriel vidéo 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!