This page looks best with JavaScript enabled

PHP-如何不使用临时变量来交换两个数值变量

 ·  ☕ 1 min read  ·  🧑 WYT

PHP-如何不使用临时变量来交换两个数值变量?

如何在PHP中不使用临时变量来交换两个数值变量?

解析如下:

一般情况下,交换两个变量的值应该使用中间变量:

1
2
3
4
5
function swap($a, $b){
   $temp = $a;
   $a = $b;
   $b = $temp;
}

1.这个方法很容易想到,但是只限于交换数值类型的变量:

1
2
3
4
5
function swap (&$a,&$b){
    $a = $a+$b;
    $b = $a-$b;
    $a = $a-$b;
}

2.使用 list 语言结构。

1
2
3
4
list($a, $b) = array($b, $a);

// 自 PHP 5.4 起
list($a, $b) = [$b, $a];

注:list — 把数组中的值赋给一些变量。像 array() 一样,这不是真正的函数,而是语言结构。 list() 可以在单次操作内就为一组变量赋值。

3.通过数组函数 array_reverse

1
2
3
4
$arr = array($a,$b);
$arr = array_reverse($arr);
$a = $arr[0];
$b = $arr[1];

注:array_reverse — 返回一个单元顺序相反的数组

4.直接使用数组操作:

1
2
3
4
5
$a = "aaa";
$b = "bbb";
$b = array($a, $b);
$a = $b[1];
$b = $b[0];

更新记录

2012-06-01 新增此文档 (wangyt)
2017-04-12 重新整理本文档 (wangyt)

[END]

Share on

WYT
WRITTEN BY
WYT
Web Developer