Napisany paź-13-2008
szybka zamiana wartości dwóch zmiennych
Dziś pokaże Wam prosty sposób, w jaki możemy zamienić dwie zmienne wartościami, nie używając do tego pomocniczej zmiennej.
Pierwsze rozwiązanie jakie może się nasuwać do głowy to takie, które prezentuje poniżej:
function change (&$a, &$b) {
$tmp = $a;
$a = $b;
$b = $tmp;
}
$a = 1;
$b = 3;
echo 'wartosc a: '.$a.'wartosc b: '.$b.'
‘;
change($a,$b);
echo ‘wartosc a: ‘.$a.’wartosc b: ‘.$b;
Chyba nie wymaga to dodatkowych wyjaśnień.
Przejdźmy do bardziej ambitnego rozwiązania, bez użycia zmiennej $tmp.
function change2 (&$a, &$b) {
$a = $a ^ $b;
$b = $a ^ $b;
$a = $a ^ $b;
}
$a = 1;
$b = 3;
echo 'wartosc a: '.$a.'wartosc b: '.$b.'
‘;
change2($a,$b);
echo ‘wartosc a: ‘.$a.’wartosc b: ‘.$b;
Wszystko to dzięki dzięki operatorowi binarnemu XOR.
UWAGA! Zastosowanie tylko dla liczb calkowitych.

A może jeszcze szybciej w taki sposób:
list($x, $y) = array($y, $x);
Tak, zdecydowanie
Opisane przeze mnie rozwiązanie nie ogranicza się wyłącznie do PHP.