Поменяйте значение двух переменных без использования третьей переменной в php

Я хочу поделиться одним вопросом, который задают большую часть времени в интервью, и я не мог ответить на этот вопрос, но, наконец, я нашел ответ:

Как заменить значение переменной 2 без использования третьей переменной?

Этот метод будет работать для любого типа переменной:

$a = 5; $b = 6; list($a, $b) = array($b, $a); print $a . ',' . $b; 

Вывод:

 6,5 

Другой простой способ (который работает только для чисел, а не строк / массивов / и т. Д.)

 $a = $a + $b; // 5 + 6 = 11 $b = $a - $b; // 11 - 6 = 5 $a = $a - $b; // 11 - 5 = 6 print $a . ',' . $b; 

Вывод:

 6,5 

Неужели вам нужен алгоритм обмена XOR ? По крайней мере, для числовых переменных.

Обычная свопинг требует использования переменной временного хранения. Однако, используя алгоритм подкачки XOR, временного хранения не требуется. Алгоритм выглядит следующим образом:

X: = X XOR Y

Y: = X XOR Y

X: = X XOR Y

Хотя я никогда не видел, чтобы он использовался в реальных сценариях (помимо работы ассемблера)