首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中交换两个变量值而不使用第三个变量

在php中交换两个变量值而不使用第三个变量
EN

Stack Overflow用户
提问于 2013-08-21 19:40:16
回答 2查看 48.5K关注 0票数 9

我想分享一个在面试中经常被问到的问题,我无法回答这个问题,但最终我找到了答案:

如何在不使用第三个变量的情况下交换两个变量的值??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-21 19:40:16

此方法适用于任何变量类型:

代码语言:javascript
复制
$a = 5;
$b = 6;
list($a, $b) = array($b, $a);
print $a . ',' . $b;

输出:

代码语言:javascript
复制
6,5

另一种简单的方法(只适用于数字,不适用于字符串/数组/等)是

代码语言:javascript
复制
$a =  $a + $b;  // 5 + 6 = 11
$b = $a - $b;   // 11 - 6 = 5
$a = $a - $b;  // 11 - 5 = 6
print $a . ',' . $b;

输出:

代码语言:javascript
复制
6,5
票数 51
EN

Stack Overflow用户

发布于 2013-08-21 19:42:00

你肯定想要XOR swap algorithm吧?至少对于数值变量是这样的。

传统交换需要使用临时存储变量。但是,使用XOR交换算法时,不需要临时存储。算法如下:

X := X异或Y

Y := X异或Y

X := X异或Y

虽然我从来没有见过它在真实的场景中使用(除了汇编工作)

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18356437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档