function swap(&$a,&$b)
{
$a=$a^$b;
$b=$a^$b;
$a=$a^$b;
}
RT,为什么它可以交换两个数字或字符串?
答案 0 :(得分:3)
这称为XOR交换。 XOR有趣的财产。
基本上,
$a = $a ^ $b;
$b = $a ^ $b; // which is $b = a XOR b XOR b = a
$a = $a ^ $b; // which is $a = a XOR b XOR a = b
但是,我不建议您使用XOR交换。它使用临时变量的性能不如swap。如果每个人都对这个可爱的神奇XOR算子感兴趣,那么有一些有趣的算法建立在同样的概念上:
答案 1 :(得分:0)
如果你的C / C ++概念很清楚,你可以简单地理解它。
^正如XOR (希望您对数字电子OR,AND等有所了解)
以简单的方式假设
$a=20;
$b=30;
function swap($a,$b) {
$a=$a*$b;
$b=$a/$b;
$a=$a/$b;
}
输出:$ a = 30,$ b = 20
您可以通过多种方式使用它,例如
function swap($a,$b) {
$a=$a+$b;
$b=$a-$b;
$a=$a-$b;
}