Maison > développement back-end > tutoriel php > Comment PHP gère-t-il le passage et l'affectation de tableaux par référence ?

Comment PHP gère-t-il le passage et l'affectation de tableaux par référence ?

Susan Sarandon
Libérer: 2024-12-10 10:14:20
original
782 Les gens l'ont consulté

How Does PHP Handle Array Passing and Assignment by Reference?

Passer des arguments et attribuer des tableaux en PHP

Les tableaux, une structure de données cruciale en PHP, sont généralement transmis à des fonctions ou affectés à des variables. Cependant, il est essentiel de comprendre comment ces opérations affectent leurs références sous-jacentes.

Tableaux comme arguments de fonction

Lorsqu'un tableau est passé en argument à une fonction, il est par défaut passé en copie. Cela signifie que la fonction opère sur la copie elle-même, sans modifier le tableau d'origine. Supposons que la fonction apporte des modifications au tableau ; ces modifications ne seront pas reflétées dans le tableau d'origine en dehors de la fonction, à moins que la fonction ne soit explicitement invitée à fonctionner par référence.

function my_func($a) {
    $a[] = 30;
}

$arr = array(10, 20);
my_func($arr);
var_dump($arr); // Output: array(10, 20)
Copier après la connexion

Pour passer le tableau par référence et permettre à la fonction de modifier le tableau d'origine, la fonction doit être déclarée comme :

function my_func(& $a) {
    $a[] = 30;
}
Copier après la connexion

Maintenant, les modifications apportées au sein de la fonction seront reflétées dans le tableau d'origine en dehors du fonction.

Attribution de tableaux

Lors de l'attribution d'un tableau à une nouvelle variable, l'affectation crée une nouvelle copie du tableau, sauf si l'opérateur de référence & est utilisé. Cela signifie que le tableau d'origine et la variable nouvellement attribuée sont séparés et que les modifications apportées à l'un n'affecteront pas l'autre.

$a = array(1, 2, 3);
$b = $a;
$b[] = 4;
// $a still contains the original array (1, 2, 3)
Copier après la connexion

Pour attribuer par référence, l'opérateur de référence & doit être utilisé :

$a = array(1, 2, 3);
$b = & $a;
$b[] = 4;
// Both $a and $b now contain (1, 2, 3, 4)
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal