1. PHP / Говнокод #12923

    +142

    1. 1
    var_dump( ((int) 0 == (string) "test") ); // TRUE

    Бляааа...

    Запостил: deep, 20 Апреля 2013

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

    • Use ===, Luke.
      Ответить
    • еще один ниасилятор
      Ответить
    • > Бляааа...
      Более того:
      "793879218739812793871298373" == "793879218739812793871298375"
      Ответить
      • Все правильно!
        Перед стравнением, приводится тип правоя сторона к типу левой стороны.
        Т.е. "test" приводиться к int.
        А (int) "test" = 0.
        Соответственно 0 == 0 является true.
        Ответить
    • Weak typing in action.

      Что более неприятно:
      in_array(0, array("a", "b", "c"));

      Решается передачей true как третьего аргумента.
      Ответить
    • Зачем там тайпкастинг?
      Чтобы 0 внезапно не стал строкой, а "test" внезпно не стало числом? </sarcasm>
      Ответить

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