在PHP中交换没有临时变量的值

我之前曾讨论过在没有临时第三个变量的情况下交换值,但是还有另一种方法可以使代码不可读。通过list()以下方式使用该功能。

$a = 1;
$b = 2;
list($a,$b) = array($b,$a);

这将交换两个值。此函数的优点是,您可以交换任意数量的值,而无需创建大量令人困惑的临时变量或使用复杂的按位运算符。取4个变量。

$a = 1;
$b = 2;
$c = 3;
$d = 4;

这些值可以通过list()以下方式完全使用该函数交换。

list($a,$b,$c,$d) = array($d,$c,$b,$a);

应该注意的是,这段代码并没有比使用临时变量快,因此仅应使用它来弄清楚发生了什么。