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.

Tagi : , ,

Komentarze:

Napisz komentarz