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

    +160

    1. 1
    2. 2
    3. 3
    if(floor($info['http_code'] / 100) >= 4) {
      throw $this->castError($result);
    }

    Библиотека интеграции с Mandrill.

    Запостил: korchasa, 20 Ноября 2013

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

    • if (substr($info['http_code'], 0, 1) == '4') {
          // fixed ;)
      }
      if (preg_match('/4[0-9]{2}/', $info['http_code']) {
          // fixed ;)
      }
      Ответить
      • 50X тоже ошибка, так что:
        if ((int) substr($info['http_code'], 0, 1) > 3) {
        Ответить
        • А ну да, согласен, там же >= использовалось.

          Но, имхо, вариант из топика не так уж и плох, по сравнению с тем, чего я понаписал выше ;)

          А в реальном коде, как сишник, я написал бы что-то совсем банальное в духе:
          $http_code = (int)$info['http_code'];
          if ($http_code >= 400 && $http_code < 600) {
              throw $this->castError($result);
          }
          Ответить
          • Потому я его сюда и залил. Вместо простого сравнения с 400 (которое понятно и в предметной области), деление + округление + сравнение с магической 4ой.
            Ответить

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