Forum Clubic

Fonction pour permuter des variables ?

salut je cherche à ecrire une fonction prenant deuw varaibles a et b en parametre et qui permutera leur valeurs mais je seche un peu… :frowning:

<html?>
<head>
<title>swap</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<? function permutation($a,$b) { switch ($a ,$b)
  case (($a=$x) &&($b=$y))  echo "avant permutation".$a."=".$x."et".b."=".$y;
break; 
case (($b=$x)&&($a=$y))  echo "après permutation".$b."=".$x."et".$a."=".$y;
break;
}
?>
<?

$a="a";
$b="b";
$x=9;
$y=8;
permutation ();
?>
</body>
</html?>

pourriez vous m’aiguiller? …

Heu je comprends pas

tu veux permutter deux variables mais tu en initialise 4 ?

et tu mets aucun paramètre à ta fonction ?

Plusieurs trucs :

  1. <? c’est mal , <?php c’est bien (portabilité : ma machine refuse <?, et d’autres aussi, dans le monde, genre tout ce qui tourne sous php5)
  2. http://fr.php.net/manual/fr/language.functions.php (ça peut être plus qu’utile)
  3. pour faire une permutation, il faut passer les valeurs par références, et non par copie (rappel : en php4 tout est passé par copie, même les objets)

Donc :

function swap(&$a, &$b) {
  $c = $b;
  $b = $a;
  $a = $c;
}

Et par la suite :

$x = 1;
$y = 2;
echo 'x = ', $x, ', y = ', $y, "\n";
swap($x, $y);
echo 'x = ', $x, ', y = ', $y, "\n";