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

    +162

    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
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    function get_root($root, $is = 0)
     {
            if (!preg_match('/^\d+$/',$root))
             {
                    print '\$root isn\'t an integer.';
                    return false;
             }
            if (!preg_match('/^\d+$/',$is))
             {
                    print '\$is isn\'t an integer.';
                    return false;
             }
            if ($root > 511 || $root < 0)
             {
                    print '\$root &gt; 255 or \$root &lt; 0';
                    return false;
             }
            if ($root < $is) return false;
            $t_arr = array ('256', '128', '64', '32', '16', '8', '4', '2', '1');
            if (!in_array($is, $t_arr) && $is != 0)
             {
                    print '\$is isn\'t in array.';
                    return false;
             }
            if ($root == 0) return array('0');
            $t_int = $root;
            $t_root = array();
            while ($t_int > 0)
             {
                    for ($i = 0; $i < sizeof($t_arr); $i++)
                     {
                            if ($t_int >= $t_arr[$i])
                             {
                                    $t_int -= $t_arr[$i];
                                    $t_root[] = $t_arr[$i];
                             }
                     }
             }
            if ($is != 0)
            { if (in_array($is, $t_root)) return true;
            else return false;
            }
            else return $t_root;
     }

    Немного опешив, я наконец-то понял, что это еще один велосипед.

    Запостил: Dalim, 01 Августа 2010

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

    • if ($root > 511 || $root < 0)
               {
                      print '\$root &gt; 255 or \$root &lt; 0';

      забавно
      Ответить
    • О даааааа, про & и << можно забыть. А регулярки вместо, к примеру, is_int() - это труъ.
      Ответить
    • а все можно было бы уместить в одну строку :)
      побитовые операции не для этого кода)
      Ответить

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