交换两个整型变量

使用一个中间变量

这种是最容易理解的

$a = 1;
$b = 2;
$temp = $a;
$a = $b;
$b = $temp;
var_dump($a, $b);

不使用中间变量,就靠几次加减巧妙转换

$a = 10;
$b = 5;

$a = $a + $b;
$b = $a - $b;
$a = $a - $b;

var_dump($a, $b);

使用位运算中的多次异或

这种最不好理解

$a = 1;
$b = 3;

$a = $a ^ $b;
$b = $a ^ $b;
$a = $a ^ $b;
var_dump($a, $b);

使用list结构

注意list()是一种类似array()的结构
这种是评论中 qufo 用户提出的,非常感谢
使用list时,要注意一下php版本

$a = 4; $b = 5;
list($b, $a) = [$a, $b];//等同于 [$b, $a] = [$a, $b];
var_dump($a , $b);
本作品采用《CC 协议》,转载必须注明作者和本文链接
六月的风
Junwind
讨论数量: 7

$a = 1; $b = 2;

[$b,$a] = [$a,$b];

var_dump($a, $b);

一句话不香吗?

2年前 评论
yuwei 2年前
liziyu 2年前
Junwind (楼主) 2年前
清风 2年前
东莞小公主 2年前

list($b, $a) = [$a, $b];

这种的我之前想到过,现在想想,感觉这个像是在甩锅,去 list 里面交换变量

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!