首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有用来交换两个变量的值的PHP函数?

有没有用来交换两个变量的值的PHP函数?
EN

Stack Overflow用户
提问于 2010-08-22 21:58:19
回答 17查看 71.5K关注 0票数 83

比方说我有..。

代码语言:javascript
复制
$var1 = "ABC"
$var2 = 123

在某些情况下,我想交换这两个,就像这样…

代码语言:javascript
复制
$var1 = 123
$var2 = "ABC"

有没有一个PHP函数可以做到这一点,而不是创建第三个变量来保存其中一个值,然后重新定义每个值,如下所示…

代码语言:javascript
复制
$var3 = $var1
$var1 = $var2
$var2 = $var3

对于这样一个简单的任务,使用第三个变量可能会更快,而且如果我真的想要的话,我总是可以创建自己的函数。只是想知道有没有这样的东西存在?

更新:使用第三个变量或将其包装在一个函数中是最好的解决方案。这是干净和简单的。出于好奇心,我更多地问了这个问题,选择的答案是“下一个最好的选择”。只需使用第三个变量。

EN

回答 17

Stack Overflow用户

发布于 2010-08-22 21:59:49

我不知道有什么函数,但是Pete Graham提供了一个一行

代码语言:javascript
复制
list($a,$b) = array($b,$a);

不过,从维护的角度来看,我不确定我是否喜欢这样做,因为它并不是真正直观地理解。

此外,正如@Paul Dixon指出的那样,它的效率不是很高,而且比使用临时变量的成本更高。在一个非常大的循环中可能值得注意。

然而,无论如何,在我看来,这是必要的情况有点不对劲。如果你想讨论它:你需要这个做什么?

票数 93
EN

Stack Overflow用户

发布于 2016-09-26 07:37:34

是的,现在确实存在这样的东西。它不是一个函数,而是一种语言结构(从PHP 7.1开始可用)。它允许使用以下简短语法:

代码语言:javascript
复制
 [$a, $b] = [$b, $a];

有关更多详细信息,请参阅"Square bracket syntax for array destructuring assignment"

票数 55
EN

Stack Overflow用户

发布于 2012-07-24 00:22:32

也可以使用旧的XOR技巧(但是,它只对整数正确工作,并且它不会使代码更容易阅读。)

代码语言:javascript
复制
$a ^= $b ^= $a ^= $b;
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3541730

复制
相关文章

相似问题

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