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

    +160

    1. 1
    2. 2
    3. 3
    if((string)(int)$url_code === (string)$url_code) { 
                  /*.... not relevant content */
           }

    Запостил: mykola, 03 Сентября 2010

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

    • еще один "is_int", относительно недавно виденный на гк.ру
      Ответить
      • ну как бэ, если неизвестно, является ли $url_code числом или строкой, то можно юзать такой подход.

        ибо is_int("100500") даст фальш так же, как и ctype_digit(100500).
        Ответить
    • не смешно...

      $a = 2.3;
      echo (int) ($a * 100); //выведет 229
      echo (int)(string) ($a * 100); //выведет 230
      Ответить
      • ну тут таки (string)(int)
        а вообще - вспоминаем о машинном эпсилон
        Ответить
        • о чём вы?:
          (int) "sdf" -> 0 //изменилось
          (int) 2.5    -> 2  //изменилось
          (int) 34     -> 34 //не изменилось


          ((string)(int) $var === (string) $var)
          -- это реализация: is_int(), как и сказал Lure Of Chaos

          и еще: если работает быстрее чем стандартная функция, то это не ГК;
          как известно, вызов функции в пхп довольно долгий:
          для простых функций-проверок, время на вызов тратиться в 2 раза больше, чем на выполнение самой функции...
          Ответить
          • $var = "10";
            var_dump((string)(int) $var === (string) $var, is_int($var));


            выдаст нам bool(true) bool(false)
            Ответить
            • На самом деле не is_int, а is_numeric
              var_dump(
                is_numeric("42"),
                (string)(int) "42" === (string) "42",
                is_numeric("abc"),
                (string)(int) "abc" === (string) "abc"
              );
              /*
              bool(true)
              bool(true)
              bool(false)
              bool(false)
              */
              Ответить
              • ну просто is_numeric("1e3") тоже даст тру.. а нужно ли такое - большой вопрос.
                Ответить
    • семь раз от'int'ь - один раз от'string'ь...
      проверка в духе похэпэ. бывало и похлеще...
      Ответить
      • имхо два каста подряд - это достаточно высокая концентрация
        Ответить
        • так в том-то и оно что 1 + -1 в php не всегда будет равно 0...
          Ответить
    • типичные утки нервно курят
      Ответить

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