Maison >développement back-end >tutoriel php >Comment PHP gère-t-il le passage et l'affectation de tableaux par référence ?
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)
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; }
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)
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)
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!