Как поменять значения двух переменных ?
Задача эта элементарна, и я бы даже не стал писать такую заметку, если бы не столкнулся с языком программирования Ruby, в котором она решается очень кратко и красиво благодаря механизму параллельного присваивания:
a,b = b,a
В этом языке реализовано достаточное количество изящных решений, с которыми я столкнулся впервые, например подмешивание модулей к классам. Учебник по Руби можно почитать вот тут.
А в традиционном php задачу тоже можно решить в одну строчку, правда не так изящно и красиво, но все же этот метод вполне рабочий:
list($a,$b) = array($b,$a)
January 16th, 2009 at 9:13 am
Спорная красивость в выражении a,b = b,a… В чем же красивость, в том, что строка на 9 букв ниже? Зато php шный вариант читабельнее. Хотя, наверное, дело привычки…
January 20th, 2009 at 3:05 am
по мне, то рубишный код намного гибче за пхпшный…Именно потому Ruby on Rails всегда будет а 10*х раз круче за CodeIgniter (особенно в Rails 3), хотя мне очень нравится последний и я использую его для фриланса
Не в обиду автору комента… таки да, дело вкуса и привычки
July 15th, 2010 at 7:29 am
$a ^= $b;
$b ^= $a;
$a ^= $b;