L'operateur &

steven-ah
Invité n'ayant pas de compte PHPfrance

03 févr. 2008, 21:37

<?php
$aMen = array('Fred', 'Bob', 'Tim', 'John', 'Bill');
$aPartner = array('Sue', 'Mary', 'Ann', 'Cathy', 'Nancy');
asort($aMen);                   // aMen now sorted; numeric keys out of order
$aWomen = array_keys($aMen);    // create a new array for result
foreach ($aWomen as $idx => &$name) $name=$aPartner[$name];
                                // aWomen now has the sorted partners
$aMen = array_merge($aMen);     // put the numeric keys in order
?> 
Bonjour,
voici un script que j'ai trouve par hasard sur internet,
mais je n'ai pas vraiment compris l'utilisation de l'operateur & dans:
foreach ($aWomen as $idx => &$name)
Pouvez-vous m'aider et m'expliquer la fonction de & ici?

merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 févr. 2008, 22:03

C'est ce qui est appelé un passage par référence.

Pour comprendre le mécanisme, et plutôt que de faire un grand discours où je serais forcément moyen, je te redirige vers la documentation officielle
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 121 Messages

04 févr. 2008, 14:14

Les références c'est surtout utilisées en PHP4 pour éviter de "cloner" les objets e.g. "$ref =& $obj" ou pour un callback "array(&$obj, 'fonction')". Cela ne sert plus à grand chose avec PHP5 puisque les objets sont automatiquement passés en tant que référence (ce qui est quand même plus logique).