Разработчику. Сборник рецептов PHP
Задавайте вопросы

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

Вернуться назад

Задача

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

Решение

Взаимно обменять $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.

Вернуться назад

Рейтинг@Mail.ru

Яндекс.Метрика

Индекс цитирования

Рейтинг Сайтов ДОСКИ.РУ