// un tableau de démo
$tree['one']['two']['three'] = '__LEAF__';
// On affiche le contenu
print_r($tree);
// crée un pointer sur le tableau
$pointer = &$tree;
// parcour le tableau jusqu'a la premiere feuille
// Ca n'alter rien ca parcours, a la fin du while, echo $pointer retournerai __LEAF__
while(is_array($pointer)) {
$key = key($pointer);
$pointer = &$pointer[$key];
}
// copy le tableau
$copy = $tree;
// Modifie la feuille
$tree['one']['two']['three'] = 'ALTER';
// Affiche le tableau d'origine et la copy
print_r($tree);
print_r($copy);
Et le résultat
Code : Tout sélectionner
Array ( [one] => Array ( [two] => Array ( [three] => __LEAF__ ) ) )
Array ( [one] => Array ( [two] => Array ( [three] => ALTER ) ) )
Array ( [one] => Array ( [two] => Array ( [three] => ALTER ) ) )Pourquoi le fait de créer un pointeur sur un tableau rend induplicable ce tableau ?
Suis-je tombé sur un bug ? Comment faire pour obtenir une copie