当交换的为数字时:
运行结果:
交换之前 $a 的值:1, $b 的值:2
交换之后 $a 的值:2, $b 的值:1
当交换的为字符串时:
一、异或
<?php
/**
* 双方变量为字符串或者数字时,可用交换方法四
* 使用异或运算
*/
$a = "This is A"; // a变量原始值
$b = "This is B"; // b变量原始值
echo '交换之前 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 输出原始值
/**
* 原始二进制:
* $a:010101000110100001101001011100110010000001101001011100110010000001000001
* $b:010101000110100001101001011100110010000001101001011100110010000001000010
*
* 下面主要使用按位异或交换,具体请参照下列给出的二进制过程,
*/
$a=$a^$b; // 此刻$a:000000000000000000000000000000000000000000000000000000000000000000000011
$b=$b^$a; // 此刻$b:010101000110100001101001011100110010000001101001011100110010000001000001
$a=$a^$b; // 此刻$a:010101000110100001101001011100110010000001101001011100110010000001000010
echo '交换之后 $a 的值:'.$a.', $b 的值:'.$b,'<br>'; // 输出结果值
运行结果:
交换之前 $a 的值:This is A, $b 的值:This is B
交换之后 $a 的值:This is B, $b 的值:This is A
二、str_replace运行结果:
交换之前 $a 的值:This is A, $b 的值:This is B
交换之后 $a 的值:This is B, $b 的值:This is A