交换两个变量的值,而不使用php中的第三个变量


Swap two variables value without using third variable in php

我想分享一个问题,这个问题在面试中大部分时间都会被问到,但我无法回答这个问题,但最终我找到了答案:

如何在不使用第三个变量的情况下交换2个变量的值??

此方法适用于任何变量类型:

$a = 5;
$b = 6;
list($a, $b) = array($b, $a);
print $a . ',' . $b;

输出:

6,5

另一种简单的方法(只适用于数字,不适用于字符串/数组等)是

$a =  $a + $b;  // 5 + 6 = 11
$b = $a - $b;   // 11 - 6 = 5
$a = $a - $b;  // 11 - 5 = 6
print $a . ',' . $b;

输出:

6,5

您肯定想要XOR交换算法吗?至少对于数值变量。

传统的交换需要使用临时存储器变量然而,使用XOR交换算法,没有临时存储需要。算法如下:

X:=X XOR Y

Y:=X XOR Y

X:=X XOR Y

尽管我从未见过它在实际场景中使用(除了汇编工作)