Page 1 sur 1

intervertir la valeur de deux variables

Posté : 22 nov. 2006, 19:41
par Spols
Bonjour

mon problème n'en est pas vraiment un, j'ai un script qui fonctionne mais par souci d'élégance et d'apprentissage je vous pose la question

Est-il possible d'intervertir la valeur entre 2 variables sans passer par une variable temporaire??

J'utilise pour le moment
$temp = $this->couleur_x;
$this->couleur_x = $this->couleur_y;
$this->couleur_y = $temp;
Est-il possible de le faire en une ligne ??

Posté : 22 nov. 2006, 22:03
par Truc
Non pas possible et puis c'est bien plus élégant comme ça.

Tu peux en faire une fonction :-k

Posté : 26 nov. 2006, 01:39
par Spols
j'ai trouvé plus simple que la fonction
list($this->couleur_x,$this->couleur_z) = array($this->couleur_z,$this->couleur_x);
la fonction demandait de toute façon un retour qui devait se faire avec list() donc autant ne pas passer par une fonction inutile

merci quand même et si les devellopeur de php passe par içi, pensez à une fonction integrer de ce type pour la suite :wink:

Posté : 26 nov. 2006, 01:41
par winni
j'ai trouvé plus simple que la fonction
list($this->couleur_x,$this->couleur_z) = array($this->couleur_z,$this->couleur_x);
la fonction demandait de toute façon un retour qui devait se faire avec list() donc autant ne pas passer par une fonction inutile

merci quand même et si les devellopeur de php passe par içi, pensez à une fonction integrer de ce type pour la suite :wink:
Pour la méthode d'une variable dites (frigo) est la méthode utilisée pour tout les languages, et d'ailleurs dans l'algorithme en lui même.

Posté : 26 nov. 2006, 01:48
par Spols
le fait de ne pas créer cette variable "frigo" moi-même me permet d'être sur quelle ne pourrait pas interferer ailleur et la supprimer à chaque fois est une ligne de plus de perdue

Re: intervertir la valeur de deux variables

Posté : 11 déc. 2013, 10:39
par Cyril.
L'avantage de la méthode utilisant list et array c'est que l'on peut permuter n variables sans passer par n variables temporaires.
list($var1, $var2, $var3) = array ($var3, $var1, $var2);