Необходимо взаимно обменять значения двух переменных без использования дополнительной переменной для промежуточного хранения значений.
Взаимно обменять $a и $b можно так:
list($a , $b) = array($b , $a);
Конструкция языка PHP list() позволяет присваивать значения из массива отдельным переменным. Ее двойник, функция array(), стоящая в правой части выражения, позволяет конструировать массивы из отдельных переменных. Присваивание массива, возвращенного функцией array(), переменным в функции list() позволяет жонглировать порядком этих значений. Этот способ подходит и для более чем двух переменных, например:
list($yesterday , $today , $tomorrow) = array($today , $tomorrow ,$yesterday);
Данный способ не дает преимущества в скорости по сравнению с временными переменными, поэтому его применяют для прозрачности кода, а не ради скорости.
Документацию по функции list() на http://www.php.net/list и по функции array() на http://www.php.net/array.