首先大家要知道交换两个变量就是指相互交换变量的值。通常,这是通过内存中的数据完成的。
第一种方法:引入中间变量
<?php $a = 15; $b = 27; echo "交换前: a =".$a." , b=".$b; $temp = $a; $a = $b; $b = $temp; echo "交换后: a =".$a." , b=".$b;
第二种方法:list()方法+数组
<?php $a = 15; $b = 27; echo "交换前: a =".$a." , b=".$b; list($a, $b) = array($b, $a); echo "交换后: a =".$a." , b=".$b;
第三种方法:substr()+strlen()
$a = 15; $b = 27; echo "交换前: a =".$a." , b=".$b; $a .= $b; $b = substr($a,0,(strlen($a)-strlen($b))); $a = substr($a, strlen($b)); echo "交换后: a =".$a." , b=".$b;
第四种方法:str_replace()
<?php $a = 15; $b = 27; echo "交换前: a =".$a." , b=".$b; $a .= $b; $b = str_replace($b, "", $a); $a = str_replace($b, "", $a); echo "交换后: a =".$a." , b=".$b;
第五种方法:异或
<?php $a = 15; $b = 27; echo "交换前: a =".$a." , b=".$b; $a=$a^$b; $b=$b^$a; $a=$a^$b; echo "交换后: a =".$a." , b=".$b;
第六种方法:加减运算
<?php $a = 15; $b = 27; echo "交换前: a =".$a." , b=".$b; $a=$a+$b; $b=$a-$b; $a=$a-$b; echo "交换后: a =".$a." , b=".$b;
对于加减法运算交换两个变量的值,如果两个变量的值不是数字,这个一方法是有问题的(php版本:7.3.4)