"PHP" / Говнокод #3178 Ссылка на оригинал

0

  1. 1
$x ^= $y ^= $x ^= $y

как это выражение меняет местами значения Х и Y ?
или что за оператор такой ^= ?

Запостил: Phoenix123 Phoenix123, (Updated )

Комментарии (29) RSS

  • О работает. Я тут давеча на одном форуме встретил пост там один товарещь интересавался как выйти на разработчиков PHP с целью предложить им код функции которая меняет местами 2 переменные не используя третию. Я так думаю он их нашел. 🙂
    Ответить
  • Моё мнение это не говнокод. а решение задачки олимпиады для школьников.
    Ответить
    • При этом, дурное и для частных случаев не катит.
      Ответить
      • Какие такие частные случаи ??? 2 целые циферки местами менет уже решение. это решение можно развить в скажем сортировку массива (правда зачем) но если речь идет об олимпийских задачках то вполне может быть и такая отсортировать массив не используя ни каких переменных. Это конечно дурь. Я бы даже парется не стал изобретая способ обменять 2 переменые не использую третию. Мож кому то это как флаг.
        Ответить
              • ну вот смотрите $x=1; $y=&$x; теперь $x==$y; при этом старое значение $y утерено задача сводится к обмену значениями. в этом случае так же можно использовать обычную конструкцию $y=$x;
                Ответить
  • А если в $x и $y не целые числа, а строки например? или же вообще разные типы.
    Ответить
  • Метод бредовый и подходит для определенных типов только.
    $x = 6.53;
    $y = 1.52;
    $x ^= $y ^= $x ^= $y;
    echo $x. '<br>'. $y ;
    На выходе 1 и 6 (уже целого типа).
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8