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

    +164

    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
    function price($cost)
    {
       if($cost > 0)
       {
          $tmp = explode('.', $cost);
          $cost = $tmp[0];
    
          if($cost >= 1000 && $cost <= 9999)
          {
             $cost = substr($cost, 0, 1)." ".substr($cost, 1);
          }
          elseif($cost >= 10000 && $cost <= 99999)
          {
             $cost = substr($cost, 0, 2)." ".substr($cost, 2);
          }
          elseif($cost >= 100000 && $cost <= 999999)
          {
             $cost = substr($cost, 0, 3)." ".substr($cost, 3);
          }
          $cost .= ' руб.';
       }
       else $cost = '';
    
       return $cost;
    }

    Вывод цены в форматированном виде) Ну да, зачем использовать автоформат по локализации, лучше поговнокодить)

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

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

    • Особый шик придаёт этому то, что $cost одновременно используется как строка и как число.
      Ответить
      • ну это нормально в динамических языках. Другое дело, что этот выверт только запутать может
        Ответить
        • Не во всех. В Питоне и Лиспе значение имеет тип и нет таких опасных неявных преобразований.

          Если бы автор понимал, что $cost, после explode будет явно строкой, то и в условиях естественнее было бы использовать strlen. А там и свести все варианты откусывания трёх последних цифр к одному выражению. А там может и до number_format() дошёл бы.
          Ответить
    • а копейки куда деваются =(
      Ответить
      • Сливаются на отдельный счет, где накапливается приличную сумма каждый день из этих копеек =D
        Ответить
    • в каждой строчке только точки над буквой ЁЁЁ....
      Ответить

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