php实现交换
交换变量的基本方法
在PHP中,交换两个变量的值可以通过临时变量实现。这种方法简单直观,适用于所有数据类型。
$a = 10;
$b = 20;
$temp = $a;
$a = $b;
$b = $temp;
echo "a: $a, b: $b"; // 输出: a: 20, b: 10
不使用临时变量的方法
通过算术运算或字符串拼接等方式,可以在不借助临时变量的情况下交换值,但需注意数据类型限制。
算术运算(仅限数字)
$a = 10;
$b = 20;
$a = $a + $b;
$b = $a - $b;
$a = $a - $b;
echo "a: $a, b: $b"; // 输出: a: 20, b: 10
字符串拼接(适用于字符串)
$a = "Hello";
$b = "World";
$a = $a . $b;
$b = substr($a, 0, strlen($a) - strlen($b));
$a = substr($a, strlen($b));
echo "a: $a, b: $b"; // 输出: a: World, b: Hello
使用 list() 和数组解构
PHP的 list() 或数组解构语法(PHP 7.1+)可以快速交换变量,代码更简洁。
$a = 10;
$b = 20;
[$a, $b] = [$b, $a];
echo "a: $a, b: $b"; // 输出: a: 20, b: 10
交换数组元素
交换数组中的元素可通过直接索引操作或 list() 实现。
$arr = [1, 2];
[$arr[0], $arr[1]] = [$arr[1], $arr[0]];
print_r($arr); // 输出: Array ( [0] => 2 [1] => 1 )
注意事项
- 算术方法可能导致整数溢出,需确保数值范围安全。
- 字符串方法仅适用于明确长度的非二进制数据。
- 解构语法要求PHP版本≥7.1,低版本需用
list()替代。







