PHP

Обмен значениями без временных переменных

Задача
Необходимо взаимно обменять значения двух переменных без использования дополнительной переменной для промежуточного хранения значений.

Решение
Взаимно обменять $a и $b можно так:

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


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

Данный способ не дает преимущества в скорости по сравнению с временными переменными, поэтому его применяют для прозрачности кода, а не ради скорости.
Теги:
list
Добавлено: 21 Июля 2018 11:11:34 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...