Supposons que j'ai un tableau de noeuds (objets). J'ai besoin de créer une copie de ce tableau que je peux modifier sans affecter le tableau source. Mais changer les nœuds affectera les nœuds source. Fondamentalement, maintenir des pointeurs sur les objets au lieu de dupliquer leurs valeurs.Dupliquer un tableau mais maintenir des liens de pointeur
// node(x, y)
$array[0] = new node(15, 10);
$array[1] = new node(30, -10);
$array[2] = new node(-2, 49);
// Some sort of copy system
$array2 = $array;
// Just to show modification to the array doesn't affect the source array
array_pop($array2);
if (count($array) == count($array2))
echo "Fail";
// Changing the node value should affect the source array
$array2[0]->x = 30;
if ($array2[0]->x == $array[0]->x)
echo "Goal";
Quelle serait la meilleure façon de procéder?
Je ne comprends pas. Comment pouvez-vous modifier le tableau sans affecter le tableau source lorsque vous voulez qu'il mette à jour le tableau source lorsque vous modifiez une valeur dans le tableau dupliqué? Pouvez-vous donner un exemple de ce que vous faites avec cela? –
Je pense qu'il veut dire que le tableau dupliqué devrait avoir les références aux mêmes instances que le premier tableau, mais être lui-même indépendant du tableau. Ainsi, changer le contenu du second tableau ne modifiera pas le premier tableau, mais changer un paramètre dans une classe référencée par le second tableau modifiera la même instance qui est refermée par le premier tableau. – Kjir
@Kjir: Ahhh, je vois que cela a du sens maintenant :) –