Démystifier le passage par valeur et le passage par référence dans les appels de fonction PHP

WBOY
Libérer: 2024-04-16 14:39:01
original
1091 Les gens l'ont consulté

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.

揭秘 PHP 函数调用中的值传递和引用传递

Démystifier le passage par valeur et le passage par référence dans les appels de fonction PHP

Pass-by-value

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
Copier après la connexion

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
Copier après la connexion

如上例所示,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
Copier après la connexion

通过将 $user 参数声明为引用,changeName

Pass par référence

Parfois, nous avons besoin d'une fonction pour modifier directement la variable d'origine. Dans ce cas, le passage par référence peut être utilisé. Pour déclarer une référence, ajoutez un symbole & 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal