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

От 11 Январь 2015. Опубликовано в PHP

Универсальный способ, для любых типов переменных, самый простой:

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

По сути аналогичные операции, но в другой записи:

$a = 10; $b = array(1,2,3);
 
$a = array('a' => $a, 'b' => $b);
$b = $a['a'];
$a = $a['b'];
 
var_dump($a,$b);

Далее представлены еще несколько способов для разных типов, в плане ознакомления.

Простой способ для числовых типов:

$a = 1; $b = 5;
 
//вариант записи №1
$a -= $b = ($a += $b) - $b;
 
//вариант записи №2
$a = $a + $b;
$b = $a - $b;
$a = $a - $b;
 
var_dump($a,$b);

Извращенский вариант для числовых и строковых типов:

$a = 'apple'; $b = 'fox';
 
$a = strlen($a).$a;
$b = $a.$b;
$a = substr($b,$b[0]+1);
$b = substr($b,1,$b[0]);
 
var_dump($a,$b);

Добавить комментарий


Защитный код
Обновить