PHP算术运算符交换数值失败求助:新手逻辑问题排查
使用算术运算符交换PHP中两个数值的错误修正
你的交换逻辑第三步写错了,导致无法完成正确交换。正确的算术交换步骤如下:
修正后的代码
<?php $a = 45; $b = 78; echo "Before swapping:<br><br>"; echo "a =".$a." b=".$b; echo "<br/><br/>"; // 正确的交换逻辑 $a = $a + $b; $b = $a - $b; $a = $a - $b; echo "After swapping:<br><br>"; echo "a =".$a." b=".$b; ?>
逻辑拆解
初始值:$a=45,$b=78
$a = $a + $b:$a变为45+78=123$b = $a - $b:$b变为123-78=45(此时$b已拿到原$a的值)$a = $a - $b:$a变为123-45=78(此时$a已拿到原$b的值)
额外补充:其他更直观的交换方式
如果觉得算术交换容易出错,也可以用以下两种方法:
- 临时变量法:逻辑清晰,新手友好
<?php $a = 45; $b = 78; $temp = $a; $a = $b; $b = $temp; ?>
- 解构赋值法(PHP 7.1及以上版本支持):一行代码完成交换
<?php $a = 45; $b = 78; [$a, $b] = [$b, $a]; ?>
内容的提问来源于stack exchange,提问作者Ajju Bhai
相关产品推荐
相关产品推荐

