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