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

    +58

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    // Released Under Affero General Public License, Version 3 (AGPL3)
    // Author: [email protected]
    
    $result = "TRUE";
    
    $testable_string = strtolower($string_to_test);
    $testable_string_length = strlen($string_to_test);
    
    for($i_string = 0; $i_string < $testable_string_length; $i_string++)
    {
        $current_value_to_test = $testable_string[$i_string];
       
        if(    ($current_value_to_test != "0")        &&
            ($current_value_to_test != "1")        &&
            ($current_value_to_test != "2")        &&
            ($current_value_to_test != "3")        &&
            ($current_value_to_test != "4")        &&
            ($current_value_to_test != "5")        &&
            ($current_value_to_test != "6")        &&
            ($current_value_to_test != "7")        &&
            ($current_value_to_test != "8")        &&
            ($current_value_to_test != "9")        &&
            ($current_value_to_test != "a")        &&
            ($current_value_to_test != "b")        &&
            ($current_value_to_test != "c")        &&
            ($current_value_to_test != "d")        &&
            ($current_value_to_test != "e")        &&
            ($current_value_to_test != "f")        )
        {
            $result = "FALSE";
            $i_string = $testable_string_length;
        }
    }

    Смахивает на баян, но тем не менее.
    http://php.net/manual/ru/function.is-numeric.php, из комментов.

    Запостил: RaZeR, 14 Декабря 2012

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

    • сферический говнокод в вакууме. Особенно мило смотрится методика выхода из цикла. Да и возвращаемое значение тоже ничего.
      Ответить
    • Да тут еще и проверки radix нет
      Ответить
    • Кстати строка "deadbeef" будет числом.
      Ответить
    • > Affero General Public License
      > Affero
      Ответить
    • Что-то даже добавить нечего.
      Ответить
    • TODO
      1. Собственная реализация strtolower и strlen (не отдельной функцией)
      2. $i_string = $testable_string_length; -> $i_string = $testable_string_length+1000; (для верности)
      3. Использовать ASCII коды вместо строк в условии. (со всеми вытекающими)
      4. Добавить именам еще информативности.
      PS.
      $Result строкой не плох.
      Ответить
    • Жесть! Хорошо что я не пишу на PHP.
      Насколько мне известно, эту порнографию можно было одной регуляркой заменить.
      Ответить
      • Регулярки для слабаков. Только конечные автоматы, только хардкор!
        Ответить
    • vanished
      Ответить

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