Une problématique classique consiste à devoir permuter deux variables. L'approche la plus simple consiste souvent à utiliser une variable supplémentaire qui servira au transit.

<?php
$chaine1="Bonjour\n";
$chaine2="Bonsoir\n";
// Permutation de $chaine1 avec $chaine2
$tmp=$chaine1;
$chaine1=$chaine2;
$chaine2=$tmp;
echo $chaine1;
echo $chaine2;
?>
La variable $tmp sert ici à recueillir la valeur de $chaine1 qui prend alors la valeur de $chaine2, qui prend à son tour la valeur de $tmp (à l'origine celle de $chaine1).

Une approche, peut être un peu plus élégante, repose sur l'utilisation des fonctions list() et array().

<?php
$chaine1="Bonjour\n";
$chaine2="Bonsoir\n";

// Permutation de $chaine1 avec $chaine2

list($chaine1, $chaine2) = array ($chaine2, $chaine1);

echo $chaine1;
echo $chaine2;
?>
Cette approche ouvre des perspectives fort intéressantes. Il est pas exemple parfaitement possible de permuter finement N variables. Exemple :

<?php
...
list($chaine1, $chaine2, $chaine3) = array ($chaine3, $chaine1.$chaine2.$chaine3, $chaine1);
...
?>
Dans cette exemple, la valeur de $chaine1 deviendra celle de $chaine3, $chaine2 deviendra une concaténation des trois chaines et $chaine3 prendra la valeur de $chaine1.