PHP不借助第三个变量交换值

时间:2021-10-31 14:26:51

总结一下:

//方法一:
$a = "abc";
$b= "def"; $a = $a^$b;
$b = $b^$a;
$a = $a^$b; //方法二:
list($a, $b) = array($b, $a); //方法三:
$a = $a . $b;
$b = strlen( $b );
$b = substr( $a, 0, (strlen($a) - $b ) );
$a = substr( $a, strlen($b) ); //方法四:(这个就比较有限制,必须用一个两个字符串都都不能出现的字符做为分隔符)
$a = $b.','.$a ;
$a = explode(',', $a);
$b = $a[1];
$a = $a[0]; //方法五:(这个是当两个数都是数字的时候)
$a = $a + $b;
$b = $a - $b;
$a = $a - $b;

这几种方法在网上都可查到,因此,这里归类为转载.

大概解释一下:方法一采用的是异或的方法,能够想得出来这个方法的,计算机的功底打得很扎实.但这个方法有个前提条件是$a,$b 的长度须一样.方法四需要分割符不能包含在$a,$b 中,第五个适用于交换两个数字.第三个方法可能存在编码的问题.因此最优雅,简洁的方法应是方法二.