Есть ли функция PHP для обмена значениями двух переменных?

Скажем, например, у меня есть ...

$var1 = "ABC"
$var2 = 123

и при определенных условиях я хочу поменять их местами так ...

$var1 = 123
$var2 = "ABC"

Есть ли PHP-функция для этого, вместо того, чтобы создавать третью переменную для хранения одного из значений, а затем переопределять каждое, например ...

$var3 = $var1
$var1 = $var2
$var2 = $var3

Для такой простой задачи, вероятно, быстрее использовать третью переменную в любом случае, и я всегда мог создать свою собственную функцию, если бы я действительно хотел. Интересно, существует ли что-то подобное? Обновление: лучшее использование - использовать третью переменную или обернуть ее в функцию. Это чисто и просто. Я задал вопрос больше из любопытства, и выбранный ответ был своего рода «следующей лучшей альтернативой». Просто используйте третью переменную.

70
задан Taylor 11 April 2017 в 14:41
поделиться

3 ответа

list($var1,$var2) = array($var2,$var1);
4
ответ дан 24 November 2019 в 13:12
поделиться

Я не знаю ни одной функции, но есть одна строка, любезно предоставленная Pete Graham:

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

Хотя я не уверен, нравится ли мне это с точки зрения обслуживания, поскольку это не совсем интуитивно понятно.

Кроме того, как отмечает @Paul Dixon, это не очень эффективно и обходится дороже, чем использование временной переменной. Возможно, это имеет значение в очень большом цикле.

Однако, ситуация, когда это необходимо, кажется мне немного неправильной. Если вы хотите обсудить это: Для чего вам это нужно?

80
ответ дан 24 November 2019 в 13:12
поделиться

Да, попробуйте это :

// Test variables
$a = "content a";
$b = "content b";

// Swap $a and $b
list($a, $b) = array($b, $a);

Это напоминает мне python, где подобный синтаксис вполне допустим:

a, b = b, a

Жаль, что вы не можете просто сделать то же самое в PHP ...

9
ответ дан 24 November 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: