Les paramètres de la fonction PHP peuvent être transmis par référence ou par valeur. Le passage par valeur ne modifie pas la variable externe, tandis que le passage par référence modifie directement la variable externe, activé à l'aide du symbole &. Le passage par référence est souvent utilisé pour modifier les éléments du tableau et optimiser les performances.
En PHP, les paramètres de la fonction peuvent être transmis par référence ou par valeur. Ces deux méthodes de transfert déterminent si les modifications apportées aux paramètres à l'intérieur de la fonction affecteront les variables en dehors de la fonction.
Pass by value est la méthode de transmission de paramètres par défaut de PHP. De cette manière, toute modification des valeurs des paramètres à l’intérieur de la fonction n’affectera pas les variables extérieures à la fonction. En effet, PHP crée une copie de la valeur du paramètre lors du passage du paramètre.
function add_by_value($a, $b) { $a += $b; } $x = 10; $y = 5; add_by_value($x, $y); echo $x; // 输出 10,因为 $x 的值没有被修改
Si vous souhaitez modifier des variables en dehors de la fonction, vous pouvez utiliser le passage par référence. En passage par référence, les modifications apportées aux paramètres à l'intérieur de la fonction seront directement reflétées dans les variables en dehors de la fonction. En effet, PHP crée une référence au paramètre lors de sa transmission, plutôt qu'une copie.
Pour activer le passage par référence, vous devez ajouter le symbole &
avant les paramètres de la fonction.
function add_by_reference(&$a, &$b) { $a += $b; } $x = 10; $y = 5; add_by_reference($x, $y); echo $x; // 输出 15,因为 $x 的值被修改了
Dans le développement réel, le passage par référence est principalement utilisé dans les scénarios suivants :
function modify_array_element(&$array, $key, $value) { $array[$key] = $value; } $array = ['foo' => 'bar']; modify_array_element($array, 'foo', 'new_value'); echo $array['foo']; // 输出 new_value
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!