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

    +163

    1. 1
    2. 2
    3. 3
    function isInt($val) {
        return is_int($val) || (string)(int)$val === (string)$val;
    }

    Проверка на целое число

    Запостил: govnomes, 11 Февраля 2011

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

    • Искусно конечно)
      Ответить
    • вот ведь, просто is_int почему не хватило? ))
      Ответить
      • а если аргумент приходит в виде строки - "125"
        Ответить
      • Он не всегда работает, точнее не всегда нам возврощает true, когда true очивиден, в итоге возвратит false... С get особенно проблемы бывают, но то что написано сдесь, не поддаётся логике в обще, кошмар и только.
        Ответить
        • а что бы вы предложили как решение такой проблемы? :)
          Ответить
          • ну тогда is_numeric
            Ответить
          • Если всё таки это гета, то разумеется сначала его отфильтровать и всёже перевести его в единое число отбросив всё лишнее intval, а уж потом проверил на целое число, наверно так, может был бы искусный говонокод, но речь не о том как написал бы я, а о том ужасе, который выше, так бы я не написал точно. Раз уж целое? Значит должно быть единым, и навернека есть ограничения по длине, смотря от ситуации, но хоть оно и число, проверить всё же надо... А может я с работы туплю )
            Ответить
    • вот как надо по-настоящему:
      function isInt($val) {
      return preg_match('@^-?\d+$@', $val);
      }
      :D
      Ответить

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