Скажем, например, у меня есть ...
$var1 = "ABC"
$var2 = 123
и при определенных условиях я хочу поменять их местами так ...
$var1 = 123
$var2 = "ABC"
Есть ли PHP-функция для этого, вместо того, чтобы создавать третью переменную для хранения одного из значений, а затем переопределять каждое, например ...
$var3 = $var1
$var1 = $var2
$var2 = $var3
Для такой простой задачи, вероятно, быстрее использовать третью переменную в любом случае, и я всегда мог создать свою собственную функцию, если бы я действительно хотел. Интересно, существует ли что-то подобное? Обновление: лучшее использование - использовать третью переменную или обернуть ее в функцию. Это чисто и просто. Я задал вопрос больше из любопытства, и выбранный ответ был своего рода «следующей лучшей альтернативой». Просто используйте третью переменную.
Я не знаю ни одной функции, но есть одна строка, любезно предоставленная Pete Graham:
list($a,$b) = array($b,$a);
Хотя я не уверен, нравится ли мне это с точки зрения обслуживания, поскольку это не совсем интуитивно понятно.
Кроме того, как отмечает @Paul Dixon, это не очень эффективно и обходится дороже, чем использование временной переменной. Возможно, это имеет значение в очень большом цикле.
Однако, ситуация, когда это необходимо, кажется мне немного неправильной. Если вы хотите обсудить это: Для чего вам это нужно?
Да, попробуйте это :
// Test variables
$a = "content a";
$b = "content b";
// Swap $a and $b
list($a, $b) = array($b, $a);
Это напоминает мне python, где подобный синтаксис вполне допустим:
a, b = b, a
Жаль, что вы не можете просто сделать то же самое в PHP ...