Maison > Article > développement back-end > Démystifier le passage par valeur et le passage par référence dans les appels de fonction PHP
Les appels de fonction en PHP peuvent être passés par valeur ou par référence. La valeur par défaut est de passer par valeur, la fonction reçoit une copie du paramètre et les modifications apportées à celui-ci n'affectent pas la valeur d'origine. Le passage par référence est déclaré en ajoutant le symbole & avant le paramètre, et la fonction modifie directement la variable passée. Le passage par référence est utile lorsque vous avez besoin d'une fonction pour modifier une variable externe, telle qu'un élément de tableau.
En PHP, par défaut, les appels de fonction utilisent le passage par valeur. Cela signifie que lorsqu'une valeur est transmise à une fonction en tant qu'argument, la fonction obtiendra une copie de la valeur. Toute modification apportée à cette copie n’affectera pas la valeur originale.
function addValue($number) { $number += 10; } $value = 10; addValue($value); echo $value; // 输出:10
Comme le montre l'exemple ci-dessus, lorsque $value
est passé à la fonction addValue
, la fonction obtient une copie de la variable. Les modifications au sein de la fonction n'affectent que la copie, pas la variable d'origine. $value
传递给 addValue
函数时,函数获取该变量的副本。函数内的修改只影响该副本,不会影响原始变量。
有时,我们需要函数直接修改原始变量。这时,可以使用引用传递。要声明引用,请在参数类型声明前添加一个 &
符号。
function addReference(&$number) { $number += 10; } $value = 10; addReference($value); echo $value; // 输出:20
如上例所示,addReference
函数的 $number
参数声明为引用。这意味着函数将直接修改传递的变量。
使用引用传递可以简化某些任务。例如,我们有一个包含用户数据的数组,并且需要在函数中对其进行修改。
$users = [ [ 'id' => 1, 'name' => 'John Doe', ], ]; function changeName(&$user, $newName) { $user['name'] = $newName; } changeName($users[0], 'Jane Doe'); echo $users[0]['name']; // 输出:Jane Doe
通过将 $user
参数声明为引用,changeName
&
avant la déclaration du type de paramètre. rrreee
Comme le montre l'exemple ci-dessus, le paramètre$number
de la fonction addReference
est déclaré comme référence. Cela signifie que la fonction modifiera directement la variable passée. 🎜🎜Exemple pratique🎜🎜L'utilisation du passage par référence peut simplifier certaines tâches. Par exemple, nous avons un tableau contenant des données utilisateur et devons le modifier dans une fonction. 🎜rrreee🎜En déclarant le paramètre $user
comme référence, la fonction changeName
peut modifier directement l'élément d'origine dans le tableau. 🎜🎜Conclusion🎜🎜Comprendre le passage par valeur et le passage par référence en PHP est crucial pour écrire du code efficace et maintenable. En utilisant le passage par référence, nous pouvons éviter la copie inutile de variables et modifier directement les variables en dehors de la fonction. 🎜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!