Home » Programmation Web » Langages Web » Comment permuter des variables en PHP

Comment permuter des variables en PHP

Poème PHP :
All PHP programmers should know …

Après avoir lu un petit article sur le swapping de variable en JS, je me suis dis que je pouvais transposer l’idée pour le PHP.

Dans beaucoup de situation, les développeurs auront la nécessité d’échanger 2 variables. Je pense qu’il est obligatoire de connaître plusieurs façons d’effectuer l’échange de variables.

Variable temporaire

L’échange de 2 variables à l’aide d’une 3eme variable temporaire est classique. Comme son nom l’indique, cette approche nécessite d’échanger les valeurs des variables $a et $b à l’aide d’une variable temporaire $temp :

$a = 10;
$b = 20;
$temp;

$temp = $a;
$a = $b;
$b = $temp;

// Résultat
echo $a; // => 20
echo $b; // => 10

Assignement par restructuration

La méthode que je vais montrer n’est valable qu’à partir de la version 7.1 de PHP. Elle ne fonctionne absolument pas avec les versions antérieures.

Notez-le de votre côté !

$a = 10;
$b = 20;

[$a, $b] = [$b, $a];

echo $a; // => 20
echo $b; // => 10

Comme vous pouvez le constater, cette technique est plus rapide, et n’a aucunement besoin d’une troisième variable.
La ligne [$a, $b] = [$b, $a]; permet de switcher les variables que vous souhaitez, dans l’ordre que vous souhaitez.
Cette technique est même fonctionnelle avec autant de variables que vous souhaitez :

$a = 10;
$b = 20;
$c = 30;

[$a, $b, $c] = [$b, $c, $a];

echo $a; // => 20
echo $b; // => 30
echo $c; // => 10

Addition et différence

Cette technique échange des variables sans utiliser de mémoire supplémentaire.

Vous l’aurez compris, l’exemple suivant permute les variables $a et b à l’aide des opérateurs arithmétiques d’addition et de soustraction :

$a = 10;
$b = 20;

$a = $a + $b;
$b = $a - $b;
$a = $a - $b;

echo $a; // 20
echo $b; // 10

Initialement, $a vaut 10 et $b vaut 20. Voici l’explication des 3 instructions :

$a = $a + $b attribue à $a la valeur 10 + 20.
$b = $a - $b attribue à $b la valeur 10+20-20 = 10.
$a = $a - $b attribue à $a la valeur 10+20-10 = 20.

Enfin, $a vaut 20 et $b vaut 10. L’échange de $a et $b a été effectué.

Bien que cette approche n’utilise pas de variables temporaires, elle présente des limites considérables :
– Tout d’abord, vous ne pouvez échanger que des entiers.
– Deuxièmement, soyez conscient du débordement des nombres lorsque vous effectuez l’addition à la première étape $a = $a + $b.


Si vous connaissez d’autres algorithmes, simple ou complexe, qui permettent la permutation de variables en PHP, n’hésitez pas à les partager. Je les ajouterai à cette article.

Posté dans Langages Web, Programmation Web

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.