不用第三个变量,交换变量的值
思路:
将2个变量拼接到$a变量,然后截取字符串。
$a = 100;
$b = 2221113;
//拼接两个字符串
$a .= $b;
//$b变量拼接在$a变量后,我们先将$a变量的值截图给$b变量。
// 截取的起始位置0
//截取的长度是$a变量-$b变量的长度 也就等于 $变量的长度
$b = substr($a, 0, strlen($a) - strlen($b));
//将拼接在$a变量中的$b变量的值截取出来
//起始位置:上面$b变量已经截取出$a的值,所有起始位置是$b变量的长度
//截取的长度就是$a变量减去$b变量的长度也就等于截取$b变量的长度
$a = substr($a, strlen($b), strlen($a) - strlen($b));
echo $b;
echo '=======';
echo $a;
本作品采用《CC 协议》,转载必须注明作者和本文链接
记得以前看到过一个用异或操作来交换的,会更简洁
@mlover 我刚看了下,的确。
设a = 14;a的二进制数: 01110;
b = 21; b的二进制数10101;
a = a^b = 11011;
b = b^a = (10101)^(11011) = 01110;
a = a^b = (11011)^(01110) = 10101;
a = 21 ,b = 14;a,b值交换
list($a, $b) = [$b, $a];
你要这样的骚操作?
数组函数操作很舒服吧 list()
不谢