我们常见的两变量交换会采用第三个变量。
本文记录几个不使用临时变量交换方法。
list 简洁 不改变变量类型适用所有变量类型
1
2
3
4
5
6
$a = "你好";
$b = "世界";
echo $a.$b;//输出 “你好世界”
list($b,$a) = [$a,$b];
echo $a.$b;//输出 “世界你好”^异或 适用于等长文本和int类型
1
2
3
4
5
6
7
8
9
10
$a = 98;
$b = 12;
var_dump($a);//int(98)
var_dump($b);//int(12)
$a = $a^$b;
$b = $b^$a;
$a = $a^$b;
var_dump($a);//int(12)
var_dump($b);//int(98)经过测试list方法和异或方法执行时间毫秒级暂时看不出区别。
但是内存方面list方法会比异或方法占用要多一点。
事实上,
List的方法虽然简洁,但是内存开销比新建一个中间变量还要大。。
测试代码
1 |
|
1 | $a = 9899999; |
文章评论