比方说我有..。
$var1 = "ABC"
$var2 = 123
在某些情况下,我想交换这两个,就像这样…
$var1 = 123
$var2 = "ABC"
有没有一个PHP函数可以做到这一点,而不是创建第三个变量来保存其中一个值,然后重新定义每个值,如下所示…
$var3 = $var1
$var1 = $var2
$var2 = $var3
对于这样一个简单的任务,使用第三个变量可能会更快,而且如果我真的想要的话,我总是可以创建自己的函数。只是想知道有没有这样的东西存在?
更新:使用第三个变量或将其包装在一个函数中是最好的解决方案。这是干净和简单的。出于好奇心,我更多地问了这个问题,选择的答案是“下一个最好的选择”。只需使用第三个变量。
发布于 2010-08-22 21:59:49
我不知道有什么函数,但是Pete Graham提供了一个一行
list($a,$b) = array($b,$a);
不过,从维护的角度来看,我不确定我是否喜欢这样做,因为它并不是真正直观地理解。
此外,正如@Paul Dixon指出的那样,它的效率不是很高,而且比使用临时变量的成本更高。在一个非常大的循环中可能值得注意。
然而,无论如何,在我看来,这是必要的情况有点不对劲。如果你想讨论它:你需要这个做什么?
发布于 2016-09-26 07:37:34
是的,现在确实存在这样的东西。它不是一个函数,而是一种语言结构(从PHP 7.1开始可用)。它允许使用以下简短语法:
[$a, $b] = [$b, $a];
有关更多详细信息,请参阅"Square bracket syntax for array destructuring assignment"。
发布于 2012-07-24 00:22:32
也可以使用旧的XOR技巧(但是,它只对整数正确工作,并且它不会使代码更容易阅读。)
$a ^= $b ^= $a ^= $b;
https://stackoverflow.com/questions/3541730
复制相似问题